- 先来看一下C++编译流程:
- 开始写g++的使用说明
- 参考链接
- g++基本用法
- g++入门教程(详细)
- gcc/g++ 链接库的编译与链接
- g++ 命令的使用
(1)总体选项
- 最简单的g++编译c++程序,一步到位,生成可执行文件(无.h,无其他库函数,输出默认test.out)
g++ test.cpp
- 指定c++编译输出文件名
g++ test.cpp -o test
源文件 命令-o 指定输出文件名
- 只激活预处理(不会生成可执行文件)
g++ -E test.cpp //不生成.i文件
g++ -E test.cpp -o test.i //生成.i文件
- 只激活预处理和编译
g++ -S test.cpp -o test.s //生成.s文件
- 只激活预处理和编译和汇编
g++ -c test.cpp -o test.o
(2)目录选项
- [-I]指定头文件目录:假设我们inlcude了一个头文件,而它也不和我们的源文件放在同一文件夹下,那我我们在编译的时候,需要告诉编译器去哪里找这个.h。如果这个.h在系统目录下,则编译器会去自动寻找,不用手动添加
假设test.cpp和文件夹top在同一目录下,top里面刚好有test.cpp要用到的头文件,该这样编译
g++ test.cpp -I./top -o test
-I.啥意思,就是指当前目录下,注意这个“.”
-I..就是指父目录下,这个不清楚的可以再次百度
- [-include] [.h] 这个就是啥意思呢,比如你写了test.cpp,但是你在源文件里面没有写#include ".h",而你又用到这个.h,这样呢,你在编译的时候,就必须手动添加该.h
假设test.cpp和文件夹top在同一目录下,top里面刚好有test.cpp要用到的头文件
g++ test.cpp -include ./top/test.h -o test
- [-L]编译的时候,指定搜索库的路径
假设test.cpp和文件夹top在同一目录下,top里面有要用到的库文件libtest.a和test.h文件
g++ test.cpp -L./top -ltest -I./top -o test
- -l[library] 指定你要用的库文件的名字
这个在上边已经用过了,我这里说一下,假设你的库文件名字为libtest.a,则你在-l调用它的时候,
只需要写l+库名,即-ltest。
g++ test.cpp -ltest -o test
(3)更多选项,等我用到了在总结