对要部署的程序而言,该选项通常是最佳选择,因为在不增加可执行文件大小的情况下,它提供了最大的优化。它是各种GNU软件发行包的默认优化级别。 就绝大部分目的而言,调试时用“-O0”,开发和部署时用“-O2”就足够了。 在GCC下,可以组合使用优化与调试选项“-g”,而许多其他编译器不支持这样做。当程序出人意料地...
就绝大部分目的而言,调试时用“-O0”,开发和部署时用“-O2”就足够了。 在GCC下,可以组合使用优化与调试选项“-g”,而许多其他编译器不支持这样做。当程序出人意料地崩溃时,有点调试信息总比什么都没有要好---所以推荐你在优化程序时加上“-g”选项,即为了开发,也为了部署。GNU发行的软件包默认都打开了...
-g: 生成调试信息 -w: 不生成任何警告 -Wall: 编译时 显示Warning警告,但只会显示编译器认为会出现错误的警告 -x <language> 指定以下输入文件的语言。允许的语言包括:c c++汇编程序none“none”表示恢复到的默认行为根据文件的扩展名猜测语言。 Options starting with -g, -f, -m, -O, -W, or --param...
3. 调试信息:通过在编译时加入`-g`选项,可以将调试信息加入生成的二进制文件中,方便调试。例如: “` gcc -g source.c -o output “` 4. 优化选项:gcc提供了一系列用于优化编译的选项,可以提高程序的性能。常用的优化选项包括`-O1`、`-O2`和`-O3`,级别越高,优化效果越明显。例如: “` gcc -O2 source...
-O 或 -O1 优化生成代码。 -O2 进一步优化。 -O3 比 -O2 更进一步优化,包括 inline 函数。 -shared 生成共享目标文件。通常用在建立共享库时。 -static 禁止使用共享连接。 -UMACRO 取消对 MACRO 宏的定义。 -w 不生成任何警告信息。 -Wall 生成所有警告信息。
RelWithDebInfo模式:-O2 -g -DNDEBUG 我们可以在 CMakeLists 中使用如下片段添加额外的编译选项: # 修改编译选项if("${CMAKE_CXX_COMPILER_ID}"STREQUAL"GNU")# debug 默认选项是 -gset(CMAKE_C_FLAGS_DEBUG"${CMAKE_C_FLAGS_DEBUG} -Wall -Wextra -Wfatal-errors -Wshadow -Wno-unused-par...
–-g:在可执行文件中加入调试信息。 –-Wall:启用所有警告信息。 –-O:优化选项,包括-O0、-O1、-O2、-O3等级别,表示不同的优化程度。 –-L:指定库文件的搜索路径。 –-l:指定需要链接的库文件。 3. 多文件编译 gcc命令还可以同时编译多个源文件,并将它们链接成一个可执行文件。多文件编译时,需要将所有...
-g:产生符号调试工具(GNU的 gdb)所必要的符号信息。想要对源代码进行调试,就必须加入这个选项。 -O:对程序进行优化编译、链接。采用这个选项,整个源代码会在编译、链接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是编译、链接的速度就相应地要慢一些,而且对执行文件的调试会产生一定的影响,造成一...
GCC的全称是GNU Compiler Collection,是GNU工具链中的一种。GCC不仅支持C/C++语言,还支持Fortran/Ada/Java等语言的编译。
-O0 、-O1 、-O2 、-O3 编译器的优化选项的 4 个级别,-O0 表示没有优化, -O1 为默认值,-O3 优化级别最高。 -g 只是编译器,在编译的时候,产生调试信息。 -ggdb 此选项将尽可能的生成 gdb 的可以使用的调试信息。 -static 此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么动态连...