CMake 设定 GCC 警告级别

今天一个server程序出现问题,在开发机器上正常,到了产品服务器上就总是崩溃。原因查了很久,总是报shared_ptr内部的错误。不知为什么?

最后决定提升GCC编译器的warning level,看看编译器能否提供帮助。

在CMakeLists.txt文件中加上:

add_definitions(-Wall)


编译器果然给了很有用的信息,发现我的函数返回类型为shared_ptr,但是却没有返回任何值。将函数返回类型改为void后,产品服务器上程序不再崩溃了。

所以,CMake默认的警告级别不够用,特别是服务端开发,最好还是用GCC最高警告级别。




CMake是一个跨平台的构建工具,它可以帮助开发者管理和构建项目。而GCC是GNU Compiler Collection的缩写,是一个开源的编译器集合,用于编译C、C++和其他语言的程序。 要进行CMakeGCC的联调,可以按照以下步骤进行操作: 1. 创建CMakeLists.txt文件:在项目根目录下创建一个名为CMakeLists.txt的文件,该文件用于描述项目的构建规则和依赖关系。 2. 编写CMakeLists.txt文件:在CMakeLists.txt文件中,你需要指定项目的名称、源文件、编译选项等信息。你还可以使用CMake的命令来查找和链接所需的库文件。 3. 生成Makefile:使用CMake命令生成Makefile,Makefile是一个用于构建项目的脚本文件。 4. 编译项目:使用GCC编译器执行Makefile,将源代码编译成可执行文件。 5. 调试项目:使用GCC的调试工具(如GDB)对生成的可执行文件进行调试。 下面是一个示例的CMakeLists.txt文件: ```cmake cmake_minimum_required(VERSION 3.10) project(MyProject) set(CMAKE_CXX_STANDARD 11) add_executable(MyProject main.cpp) target_link_libraries(MyProject PUBLIC library1 library2) ``` 在这个示例中,我们指定了项目的名称为MyProject,源文件为main.cpp,使用C++11标准进行编译。我们还使用了target_link_libraries命令来链接名为library1和library2的库文件。 请注意,具体的CMakeGCC联调过程可能因项目的不同而有所差异。你需要根据你的项目需求和具体情况进行相应的配置和调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值