eclipse 灵活使用makefile来编译C/C++

摘要:
我使用eclipse+CDT编写C++。我们知道gcc+makefile+gdb?让我们看看如何使用eclipse+makefile灵活地编译程序。src下有一个makefile文件,它必须删除主动生成makefile的选项。在以下生成路径中,选择makefile所在的路径。

需求:

近期在看<C++ Primer Plus>, 作者在不断优化自己的类。有很多不同的版本号,有非常多的測试函数(main函数),我使用的是eclipse+CDT来编写C++,不可能为每一个类都创建一个project。那咋办呢?

我们知道gcc+makefile+gdb。是linux下的神器,使得编敲代码相当的灵活,奈何水平不够,还是使用了IDE来配合。

以下就来看看怎么使用elipse+makefile来灵活编译程序。

1. 首先上一张效果图:

eclipse 灵活使用makefile来编译C/C++第1张

2. 文件说明,加入了目录header和src,来存储头文件和实现文件,src以下有一个makefile文件。生成的可运行文件放在Binaries以下。

3. 怎么配置:

(1)在project的属性中,c/c++ build中。新建一个配置(manage configuration)。

(2)build settings中。肯定是将自己主动生成makefile的选项给去掉,以下的build路径中选择makefile所在的路径就可以;

(3)能够參考下图。详细配置,能够參考:http://yuoveyu.blog.51cto.com/2926448/596429

eclipse 灵活使用makefile来编译C/C++第2张

4. 剩下的就是自己写makefile文件了,有个经典的教程:<跟我一起写makefile>,能够參考,我这里的makefile:

CC :=	g++
RM := rm -rf
 
all :	usetime0  usetime1 usetime2 usetime3
 
clean :
	$(RM)	usetime0 usetime1 usetime2 usetime3
 
usetime0 :	usetime0.cpp
	$(CC)	usetime0.cpp mytime0.cpp -o ../Binaries/usetime0 

usetime1 :	usetime1.cpp
	$(CC)	usetime1.cpp mytime1.cpp -o ../Binaries/usetime1
	
usetime2 :	usetime2.cpp
	$(CC)	usetime2.cpp mytime2.cpp -o ../Binaries/usetime2

usetime3 :	usetime3.cpp
	$(CC)	usetime3.cpp mytime3.cpp -o ../Binaries/usetime3

5. windows下使用vs2012怎么灵活的编译呢?  眼下使用的是ifdefine来进行控制相应的main函数,想使用哪个main函数,就在那个main函数里define一个宏变量。

记录一个问题:PCH 警告:标头停止点不能位于宏或#if块中, #pragma once作为头文件的第一句就能够避免出现文章标题所说的警告问题.

写在后面:

1.eclipse的配置。曾经写过一个eclipse安装NS3。事实上跟这个流程差点儿相同;

2.怎么学习C++,能够參考文章:怎样学好C++ : 包含一些书籍以及和java对照学习,能够自己找些开源的项目来学习; 知乎上也有讨论主题:怎么样才算学好C++



免责声明:文章转载自《eclipse 灵活使用makefile来编译C/C++》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python 调用outlook发送邮件(转 )解决大量TCPIP连接后出现“因为系统缺乏足够缓冲区空间或者因为队列已满无法执行套接字上操作”的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Robot Framework安装使用

关于robotframework环境搭建安装请参考 另外一篇博文:Robot Framework的环境搭建(就是一些库文件的安装) 项目基本流程: 1.创建项目New Project----选择directory原因是,在directory的项目下可以创建测试套件,如果是tpye为file,则只能创建测试用例,这不利于用例的管理。 2.创建测试套件New...

Android混淆

一、为什么要混淆 为了避免apk在发布后被用户通过反编译拿到源代码和资源文件,然后修改资源和代码之后就变成一个新的apk。而经过混淆后的APK,即使被反编译,也难以阅读,注意混淆不是让apk不能阅读,而是加大阅读的难度,为了避免劳动成果被窃取,也避免出现安全漏洞和隐患,所以在apk发布之前一定要进行混淆。 二、混淆的原理 Java是一种跨平台、解释型语言...

shell实现大批量word转码然后分析相关字段

需求 需要从服务器中的所有附件(2013-2019) 共60G查找相关字段 在linux上面直接打开doc等是乱码的 思路 先全部附件转码为txt, 然后用grep遍历查找字段实现 转码shell #!/bin/bash #*******************************************************************...

Windows Embedded CE 6.0开发环境的搭建

第一步,安装VS2k5,安装完成后要安装VS2k5 SP1补丁(KB926601),否则后面的Platform Builder SP1无法安装。       第二步,安装Windows Embedded CE 6.0,官方下载地址为: http://www.microsoft.com/downloads/details.aspx?familyid=7...

ansible-乱

工作机制:ssh 无客户端 工作方式: 1,CMDB 2,公有云私有云API 3,使用ad-hoc 4,ansible-playbook ansible 执行命令,底层调用传输连接模块,将命令或文件传输至远程服务器的/tmp目录,远程执行,操作完后删除,返回结果。 配置文件 /etc/ansible 功能;inventory 主机信息配置 工具功能 /us...

docker基础---数据卷volumes

1、数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 卷会一直存在,直到没有容器使用 *数据卷的使用,类似于 Linux 下对目录或文件进行 mount。 1.1 创建一个数据卷 在用 docker run 命令的时候...