2008年1月15日星期二

FW: [嘻嘻哈哈] gcc的编译参数



 
后来找了一下gcc的编译参数(摘自http://tingxx.blogchina.com/)

gcc的一些重要参数
1. -I 指定头文件搜索路径(I 表include)
如 $gcc -c hello.c -o hello.o -I/usr/include
2.-L 指定要连接的库所在的目录
-l 指定要连接的库的名字
如$gcc main.o -L/usr/lib -lqt -o hello
3. -D 定义宏(D-define)
-D定义宏有两种情况,一种是-DMACRO 相当于程序中使用#define MACRO 另外可以-DMACRO=A 相当于程序中使用#define MACRO A 这只是一个编绎参数,在连接时没有意义
如: $gcc -c hello.c -o hello.o -DDEBUG
上面为hello.c定义了一个DEBUG宏,某些情况下使用-D 代替直接在文件中使用#define,也是为了避免修改源代码双。例如一个程序希望在开发调试的时候能打印出调试信息,而正式发布的时候就不用打印了,而且发布前不用修改源代码双。可以这样
#ifdefine DEBUG
printf("debug message\n");

没有评论: