Linux——C++程序编译
2016-08-31 17:36
176 查看
2016/8/31 学习caffe源代码时第一次用到了Linux下的C++程序编译,固将相关内容整理于此。
一、GCC(GNU Compiler Collection)是linux下最主要的编译工具,GCC不仅功能非常强大,结构也异常灵活。它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada.
g++是GCC中的一个工具,专门来编译C++语言的。GCC的参数有:( 也是分步实现)
二、假如有两个以上源文件应该一下编译。
一步就实现
也可以分步实现
三、GCC一些常用选项
1、产生警告信息的选项大多数以-W开头 其中有-Wall
2、将所有的警告当成错误的选项-Werror
3、寻找头文件选项 -I (linux默认路径:头文件在/usr/include/下),不在这个路径下就要用-I指定。
4、 库依赖选项 -L (linux默认路径:库文件在/usr/lib/下),不在这个路径下就要用-L指定。
库就是将源文件编译之后生成的目标文件的集合。库命名以lib开头。
库有静态库(通常以.a结尾)和动态库(通常以.so结尾)。默认情况下,g++以动态库形式连接。如果要静态库连接则要用-static指定(g++ foo.cpp -L/home/lib-static -lfoo -o foo)
5、优化选项 -On (n取0到3之间)
一、GCC(GNU Compiler Collection)是linux下最主要的编译工具,GCC不仅功能非常强大,结构也异常灵活。它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada.
g++是GCC中的一个工具,专门来编译C++语言的。GCC的参数有:( 也是分步实现)
-E 让GCC在预处理结束后停止编译 g++ -E hello.cpp -o hello.i -c 将hello.i编译成目标代码 g++ -c hello.i -o hello.o 将目标文件连接成可执行文件 g++ hell.o -o hello 可以一步实现 g++ hello.cpp -o hello
二、假如有两个以上源文件应该一下编译。
一步就实现
g++ foo1.cpp foo2.cpp -o foo
也可以分步实现
g++ -c foo1.cpp -o foo1.o g++ -c foo2.cpp -o foo2.o g++ foo1.o foo2.o -o foo
三、GCC一些常用选项
1、产生警告信息的选项大多数以-W开头 其中有-Wall
g++ -Wall hello.cpp -o hello
2、将所有的警告当成错误的选项-Werror
g++ -Werror hello.cpp -o hello
3、寻找头文件选项 -I (linux默认路径:头文件在/usr/include/下),不在这个路径下就要用-I指定。
gcc foo.cpp -I/home/include -o foo
4、 库依赖选项 -L (linux默认路径:库文件在/usr/lib/下),不在这个路径下就要用-L指定。
g++ foo.cpp -L/home/lib -lfoo -o foo
库就是将源文件编译之后生成的目标文件的集合。库命名以lib开头。
库有静态库(通常以.a结尾)和动态库(通常以.so结尾)。默认情况下,g++以动态库形式连接。如果要静态库连接则要用-static指定(g++ foo.cpp -L/home/lib-static -lfoo -o foo)
5、优化选项 -On (n取0到3之间)
相关文章推荐
- Linux下用eclipse写C/C++语言程序的编译问题
- Linux下编写C++程序连接mysql数据库编译时指定头、库
- linux下mongodb程序和c++客户端的编译
- Linux下C++程序常用编译命令
- Linux 编译运行 C/C++程序
- linux下编译C++程序出现错误 “*** stack smashing detected ***, eclipse解决方法
- 关于Linux下C/C++程序编译
- Linux下C++程序常用编译命令
- 关于Linux下C/C++程序编译
- linux下c++程序编译错误--理解typename
- linux下如何将c++程序编译成so,如何调用该so文件
- 让C/C++程序一次编译,到处运行 (仅限Linux)
- [linux命令] gcc C和C++程序编译
- [转]一些关于linux下编译C++程序的东西
- 让C/C++程序一次编译可以发布到多版本Linux之上
- aix 使用g++编译c++程序的编译选项 -- linux到aix移植经验
- linux系统编译C++程序时头文件和库文件搜索路径
- 在linux下如何编译C++程序
- Linux下如何编译、运行C、C++程序?
- 让C/C++程序一次编译可以发布到多版本Linux之上