在makefile中添加编译选项 makefile如何决定编译32位还是64位的库?

[更新]
·
·
分类:互联网
3477 阅读

在makefile中添加编译选项

makefile如何决定编译32位还是64位的库?

makefile如何决定编译32位还是64位的库?

makefile调用编译器,例如64 位编译器gcc有一个编译 -m32可以编译成32位程序,默认选项是64位程序

linux下怎么增加编译条件?

linux下可以通过修改文件makefile来增加编译条件。

makefile文件特点?

makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
makefile的最主要特点——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

万能makefile写法详解?

1 定义可执行文件的名称
TARGET MyPro
2 指定此编译工程所要使用的头文件所在的目录
INC -I. -Iheader1 -Iheader2
3 指定cpp文件所在的目录
VPATH .:src1:src2
4 指定所有的cpp文件
SRC_PATH $(foreachdir,$(subst :, ,$(VPATH)),$(wildcard $(dir)/,*.cpp))
解释:
foreach,subst,wildcard为makefile的内置函数,其中wildcard函数为字符串连接函数,把函数中的两个参数连接成一个。subst是字符串替换函数,在此句中意思是把VPATH变量中的冒号替换成空格。foreach函数,就是把subst函数的返回值,以空格为分隔符,循环取值赋给dir,然后接受wildcard的处理。
这句的总体意思是:从VPATH中获取每个目录,并分别找出此目录下所有的cpp文件,赋给SRC_PATH变量。
5 定义中间object文件存放的目录。
OBJ_DIR ./obj
6 所有的object文件要按照和源代码对应的目录存放,定义object文件的目录
OBJ_PATH $(addprefix $(OBJ_DIR)/, $(subst :,,$(VPATH) ) )