makefile选项问题
makefile中出现下面代码:
CFLAGS = -I..\include -Aa -D_INCLUDE_POSIX_SOURCE
aCC -DAportable ${CFLAGS} -L $(LIBS) -o $(PROGRAM) $(OBJS)
-DAportable 是什么意思?
CFLAGS这是不是一个变量,引用它是怎么用{}而不是()?
在CFLAGS中,-Aa -D_INCLUDE_POSIX_SOURCE是什么意思?
COMPILEO= -c -g -DAportable +eh
COMPILEEXE= -g -lm -DAportable -l pthread -o
这里面+eh pthread是什么意思?
望各位高手解决小弟疑惑?
[解决办法]
-DAportable 是什么意思?
CFLAGS这是不是一个变量,引用它是怎么用{}而不是()? //就是${},也可以不加{} ,直接$
在CFLAGS中,-Aa -D_INCLUDE_POSIX_SOURCE是什么意思?
//编译参数设置,和你的程序有关系
LINUX编译环境最基本的语法
[解决办法]
看看, < <跟我一起学Makefile> >
[解决办法]
-c -g 之类的都是编译器的参数
pthread是库
D_INCLUDE_POSIX_SOURCE是宏,跟你文件中的#ifdef D_INCLUDE_POSIX_SOURCE....有关
[解决办法]
-DAportable是定义了一个名为Aportable 的宏
引用CFLAGS的规则是MakeFile的规则,不shell脚本不同
-D_INCLUDE_POSIX_SOURCE是定义了一个名为_INCLUDE_POSIX_SOURCE的宏
-l pthread 表示用pthread库
+eh可能是打开异常支持
-A是做什么的不清楚,查GCC的帮助吧
[解决办法]
CFLAGS = -I..\include -Aa -D_INCLUDE_POSIX_SOURCE
aCC -DAportable ${CFLAGS} -L $(LIBS) -o $(PROGRAM) $(OBJS)
-DAportable 是什么意思?
CFLAGS这是不是一个变量,引用它是怎么用{}而不是()?
在CFLAGS中,-Aa -D_INCLUDE_POSIX_SOURCE是什么意思?
------------------------------------
+Daportable生成适用于PA-RISC 1.1机器的可执行模块,而该模块属于PA-RISC 2.0,也就是你用的
比较新的。
CFLAGS 只是定义编译器的一些编译时侯的参数,比如编译器有压缩的好多种方式之类的,,你可以改为任何名字 只是个标题而已,把I..\include 也写再里面,风格不好
------------------------------------
COMPILEO= -c -g -DAportable +eh
COMPILEEXE= -g -lm -DAportable -l pthread -o
这里面+eh pthread是什么意思?
------------------------------------
你的程序里面使用的多线程,pthread是一个线程包,必须把库包含进去,你才能编译通过
------------------------------------