有时候我们编译一个大的项目的时候,会出现很多错误使得屏幕堆满了很多无用的信息。一般情况下我们需要找到首次出现错误的地方,在gcc中添加编译选项可以使编译停止在第一次出现错误的地方:
$ gcc -Wfatal-errors foo.c // GCC 4.0 and later
$ g++ -Wfatal-errors foo.cpp
$ g++ -fmax-errors=N foo.cpp // 在出现第 N 此错误的时候停止编译,GCC 4.6 and later
如果使用cmake构建的项目:
add_definitions(
-Wfatal-errors
)
或者
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wfatal-errors") // better
打开警告信息:
$ g++ -Wall foo.cpp //提示警告信息
警告信息当做错误处理:
$ g++ -Werror foo.cpp //将警告信息当做错误显示
打开测试浮点数相等的警告:
$ g++ -Wfloat-equal foo.cpp //通常测试浮点数相等是不准确的
默认情况下,GCC/G++链接时优先链接动态库,如果没有动态库,则链接相应的静态库。同时 -Wl,-Bstatic
选项指定静态链接后面的库,而 -Wl,-Bdynamic
动态链接后面的库。如果指定为 -static,则全部默认链接静态库。
-Werror, -Wimplict-function-declaration:打开不明确函数声明的警告,并将所有警告设置为error。
-Werror=implict-function-declaration:只将不明确函数声明的警告设置为error。
-Wall:打开所有的警告信息。
-Wunused-variable:打开未定义的值的警告。
-w:忽略所有的警告信息。