c++编译选项含义(更新中)

本文详细介绍了C++编译器中的各种选项,如编译目标文件、指定标准、添加头文件路径、控制警告级别(包括-Wall、-Wextra和-Werror),以及优化级别(O1、O2、O3)的选择。同时涵盖了链接相关选项如库文件搜索路径和动态链接设置。
摘要由CSDN通过智能技术生成

常见编译选项:

        -c: 只编译源文件,生成目标文件。不进行链接操作,生成目标文件后还需要通过连接器将其与其他目标文件链接成可执行二进制文件。

        -std=<标准>: 指定c++标准,例如-std=c++11表示使用c++11标准进行编译。默认情况下编译器会使用最新的c++标准。

        -I <路径>: 添加头文件的搜索路径。

 

Worning相关:

        -w: 用于关闭所有警告信息

        -Wall: 表示开启所有警告信息

        -Wextra: 表示开启额外的警告信息,与-Wall不同,该选项提供了更多的警告选项,包括了一些非常细微的问题。例如:未使用的变量,未定义的行为(例如使用未初始化的变量等)

        -Werror: 将所有警号信息视为错误信息并停止编译过程,从而防止在代码中出现的潜在问题。

        -Wno-ununsed-parameter: 取消未使用函数参数的警告信息

        -Wno-uninitialized: 取消未初始化的警告信息

优化级别编译选项:

        O1: 这是一个较低的优化级别,它启用了一些基本的代码优化技术,如删除未使用的变量、简化常量表达式、内联简短函数等。它可以提高程序的执行效率,但是保留了较多的调试信息和较小的代码体积,便于调试理解。

        O2: 这是一个中等的优化级别,它启用了等多的代码优化技术,如函数内联、循环展开、常量传播等。它会产生更高效的代码,但也可能增加编译时间和生成代码的体积。

        O3: 这是一个更高的优化级别,它可能使用更复杂的优化技术,如向量化、循环变量优化、函数分析等。它会产生更高效的代码,但更多的优化可能会增加编译时间并消耗更多的内存。

        总结:一般而言,建议在开发过程中使用较低的优化级别(O1, O2),以便保留调试信息和可读性。在发布前进行性能优化时,可以尝试使用O3来生成更高效的代码。

 

链接相关:

        -L <路径>: 添加库文件的搜索路径。

        -l <库名>: 链接库文件。

        -rapth=<路径>: 用于连接动态库,在程序运行时指定动态库的搜索路径(有时所需lib不在环境变量中又不想配置时,可以使用该选项来指定)。

        -Wl, <参数>: 用于将后面的参数传递给链接器。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值