gcc 的参数 -Wall -O2 -ansi -Wall 生成所有警告信息 -o test (小写字母o)是说输出为test -ansi 是使用c++98标准去编译代码。 关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一些asm inline typeof关键字,以及UNIX,vax等预处理宏) -O0 (大写字母O) -O1 -O2 -O3 编译器的优化选项...
gcc-Wall -o test_w_wall testwwall.c 显示了所有的警告,比之前不使用任何选项多出了变量a未使用这个警告,也多出了main函数的返回值不是int型。 使用-W选项 gcc-W -o test_w_wall testwwall.c 只显示了没有返回值的main函数不应该有return一个值这个警告。 gcc-W -Wall test_w_wall testwwall.c ...
-Wl,option 这个参数将option传给连接程序,如果option中有逗号,则会把option分成多项,传给连接程序。 -llibrary 用于制定编译的时候使用的库,如 gcc -lgtk tset.c则程序使用gtk库进行编译,不过需要注意的是gcc库一般都是以libname.a来命名库文件,在用-l参数来加入库文件的时候,直接用-lname来引入,而前面的lib...
当代码量变得比较大的时候,同时启用-Wall -Wextra -Werror是比较严苛的,可能存在一些不准确的警告,这时可以将-Werror替换为只将某些警告视为错误,在自动化编译构建的时候提前报错终止提示开发者进行改进。 对于大部分-Wunused-类警告选项,其实都是让开发者明确知道定义的变量或者参数是不是必须的,是多余的还是忘记使...
如果在你使用的 gcc 命令中,命令行选项列表变得很大而且很难管理,那么你可以把它放在一个文本文件中,然后把文件名作为 gcc 命令的一个参数。之后,你必须使用@file 命令行选项。比如,下面这行是你的 gcc 命令:gcc -Wall -Wextra -Wfloat-equal test.c -o test 然后你可以把这三个和警告相关的选项放到一...
我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录: 例: gcc -Wall -I /home/hello/include -L /home/hello/lib main.c -l world -Wl,-rpath,/you/dir/name -o prog 上面这句表示在编译hello.c时: ...
“-Wall”选项打开所有最常用到的编译警告,强烈建议打开,可以捕捉到许多在C编程中最常发生的错误。 “-o”选项来为可执行文件指定一个不同的输出文件。 “-c”用于把源码文件编译成对象文件。 对象文件包含的是机器码,其中任何对在其他文件中的函数(或变量)的内存地址的引用都留着没有被解析。这样就允许在互相...
1、 -Wall集合警告选项我们平时可能大多数情况只使用-Wall编译警告选项,实际上-Wall选项是一系列警告编译选项的集合。下面逐一分析这一集合中的各个选项: 1.1 [-Wchar-subscripts] 1.2 [-Wcomment] 1.3 [-Wformat] 1.4 [-Wimplicit] 1.5 [-Wmissing-braces] 1.6 [-Wparentheses] 1.7 [-Wsequence-...
# 修改编译选项 if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") # debug 默认选项是 -g set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -Wextra -Wfatal-errors -Wshadow -Wno-unused-parameter -O0") # -Og使用-O1优化, 除了那些影响调试的部分 set(CMAKE_CXX_FLAGS_DEBUG "${CMA...