g++ 一般而言 c++程序都是用g++ c程序都用gcc
命令格式 g++ file -option params
几个选项
-o output的意思 表示输出
-E 例如 –E test.i 表示预处理后的文件 (很少使用)
-S 表示汇编 例如-S test.s 然后就可以查看汇编代码了(很少使用)
-c 编译产生.o机器语言 不过不链接 (较少使用)
下面常用的
-g 后面不带参数,有了这个 才能调试
-I 相当于include 比如你-I/usr/local/include 那么这个目录下的所有.h文件 你直接include “test.h”就可以了 注意!! -I和其后的参数 中间没有空格!!
-L 搜索路径 一般用于你使用了动态(.so文件)或者静态库(.a文件) 和-I一样 和其后的参数之间不能有空格
-l 同上 和其后的参数不能有空格,-ltest 则在上面的那个目录下面寻找libtest.a或者libtest.so(所以说动态和静态库对g++来说输入用法基本一样) 你想告诉g++多个库 就一个一个的-ltest1 –ltest2–ltest3这样加
-MM 这是一个强大的命令,g++ -MM test.cxx可以把test.cxx所依赖的所有非库文件都列出来,很利于写makefile文件
Bash下面比较强大的命令
和静态库相关的ar
和动态库相关的nm
具体查看他们的help或者man
Gcc的使用和g++雷同
有时候在用gcc去编译代码的时候找不到头文件里面的函数 比如头文件含有math.h结果找不到exp 这些函数
可以这样 gcc file -lm 即可