就绝大部分目的而言,调试时用“-O0”,开发和部署时用“-O2”就足够了。 在GCC下,可以组合使用优化与调试选项“-g”,而许多其他编译器不支持这样做。当程序出人意料地崩溃时,有点调试信息总比什么都没有要好---所以推荐你在优化程序时加上“-g”选项,即为了开发,也为了部署。GNU发行的软件包默认都打开了...
对要部署的程序而言,该选项通常是最佳选择,因为在不增加可执行文件大小的情况下,它提供了最大的优化。它是各种GNU软件发行包的默认优化级别。 就绝大部分目的而言,调试时用“-O0”,开发和部署时用“-O2”就足够了。 在GCC下,可以组合使用优化与调试选项“-g”,而许多其他编译器不支持这样做。当程序出人意料地...
-g: 生成调试信息 -w: 不生成任何警告 -Wall: 编译时 显示Warning警告,但只会显示编译器认为会出现错误的警告 -x <language> 指定以下输入文件的语言。允许的语言包括:c c++汇编程序none“none”表示恢复到的默认行为根据文件的扩展名猜测语言。 Options starting with -g, -f, -m, -O, -W, or --param...
MinSizeRel模式:-Os -DNDEBUG RelWithDebInfo模式:-O2 -g -DNDEBUG 我们可以在 CMakeLists 中使用如下片段添加额外的编译选项: # 修改编译选项if("${CMAKE_CXX_COMPILER_ID}"STREQUAL"GNU")# debug 默认选项是 -gset(CMAKE_C_FLAGS_DEBUG"${CMAKE_C_FLAGS_DEBUG} -Wall -Wex...
–-g:在可执行文件中加入调试信息。 –-Wall:启用所有警告信息。 –-O:优化选项,包括-O0、-O1、-O2、-O3等级别,表示不同的优化程度。 –-L:指定库文件的搜索路径。 –-l:指定需要链接的库文件。 3. 多文件编译 gcc命令还可以同时编译多个源文件,并将它们链接成一个可执行文件。多文件编译时,需要将所有...
-g:产生符号调试工具(GNU的 gdb)所必要的符号信息。想要对源代码进行调试,就必须加入这个选项。 -O:对程序进行优化编译、链接。采用这个选项,整个源代码会在编译、链接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是编译、链接的速度就相应地要慢一些,而且对执行文件的调试会产生一定的影响,造成一...
gcc命令提供了丰富的编译选项,用于控制编译的行为。例如,可以使用`-Wall`选项启用所有警告信息,使用`-O2`选项进行优化,使用`-g`选项生成调试信息等。可以通过`man gcc`命令查看gcc命令的详细文档,了解更多可用的选项。 5. 使用makefile自动化编译 makefile是一个文本文件,用于定义源代码文件之间的依赖关系和编译命令...
-g编译时,添加调试信息 gcc -g -c hello.c -o hello -Wall编译时生成所有的警告信息 gcc -Wall hello.c -o hello -w编译时不生成任何警告信息 gcc -w hello.c -o hello -O0,-O1(-O),-O2,-Os,-O3 在编译时,对程序进行优化(gcc提供了5种不同的优化方式) ...
-g:该标志在编译后的可执行文件中包含调试符号。 -ggdb:该标志使GCC以适用于GNU调试器(GDB)的格式生成调试信息。 3.警告Flag 警告标志有助于识别潜在问题、编码错误或代码中存在问题的实践。通过启用警告标志,编译器会对这些情况提供警告,使开发人员能够提高代码质量。
e.g. $gcc -Wall -DVALUE="2+2" tmp.c -o tmp 如果不显示地赋值,如上例子,只给出:-DVALUE,gcc将使用默认值:1. (2) 除了用户定义的宏外, 有一些宏是编译器自动定义的,它们以__开头,运行: $cpp -dM /dev/null, 可以看到这些宏. 注意, 其中含有不以__开头的非ANSI宏,它们可以通过-ansi选项被...