Ubunu下的g++总结
发布文章
“tonydandelion2014”
g++总结
详解命令一
gcc test.cpp -o test `pkg-config opencv --cflags --libs` -fopenmp -ansi -pedantic -Wall -Wextra -Werror -pipe -lrt -lm -O2 -lstdc++
-pkg-config
pkg-config是一个linux下的命令,用于获得某一个库/模块的所有编译相关的信息。
例子:
pkg-config opencv –libs –cflags
-fopenmp它的含义是让它后面的语句按照多线程来执行。需要注意的是每个线程都去做相同的事情。
-ansi 是使用c++98标准去编译代码
-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
-Wall 选项意思是编译后显示所有警告。
-Wextra 打印一些额外的警告信息。
-Werror 把警告当作错误。出现任何警告就放弃编译。
-pipe 使用管道代替临时文件。
-lrt To link-in librt.a or librt.so, which is the Realtime Extensions library.链接到librt.a或librt.so,它是Realtime Extensions库。
-lm 连接数学库;-lm命令是使编译的时候,链接数学库
-O2 -O0表示没有优化,-O1为缺省值,-O3优化级别最高
-lstdc++ 在用gcc进行链接时,要加上 -lstdc++ 库。且要放在最后。因为gcc是按从右到左的顺序查找依赖库的。 如果没有这一步,会在链接时提示错误: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line