今天一个server程序出现问题,在开发机器上正常,到了产品服务器上就总是崩溃。原因查了很久,总是报shared_ptr内部的错误。不知为什么?
最后决定提升GCC编译器的warning level,看看编译器能否提供帮助。
在CMakeLists.txt文件中加上:
add_definitions(-Wall)
编译器果然给了很有用的信息,发现我的函数返回类型为shared_ptr,但是却没有返回任何值。将函数返回类型改为void后,产品服务器上程序不再崩溃了。
所以,CMake默认的警告级别不够用,特别是服务端开发,最好还是用GCC最高警告级别。
分享到:
相关推荐
linux系统下采用vscode+cmake+gcc+gdb开发实例详细介绍
GCC 4.8.4 Linux 安装包内包含了GCC安装需要的依赖文件mpfr gmp和mpc
一、解压后上传所有下载文件到liunx服务器 二、修改CentOS-Media.repo中:baseurl=file:///app/iso/为上传文件所在目录 三、执行yum_init.sh后 ... 本资源只有gcc、gcc-c++、cmake三个组件和其依赖组件
编译安装MySQL 8.x所需要的gcc与cmake安装文件,gcc版本为9.2.0, cmake版本为3.15.2,具体升级方式可参见博文:https://blog.csdn.net/l1028386804/article/details/103211544
gcc make makefile cmake cmakelist 区别 gcc make makefile cmake cmakelist 区别
不需要下载gcc、cmake、draco源码,仅在centos7.5(1804)下验证过 gcc-5.4.0.tar.bz2 cmake-3.5.2.tar.gz draco-1.3.3.tar.gz
arm64-linux-gcc.cmake arm64-macos.cmake arm64-mingw-gcc.cmake armv7-ios.cmake armv7-linux-gcc.cmake armv7-mingw-gcc.cmake armv7s-ios.cmake ios-simulator-common.cmake ppc-linux-gcc.cmake riscv-linux-...
附件中是根据github上的代码修改,能够顺利编译的libssh2. 主要更改openssl.h文件。 cmake要自己编译,请根据自己机器上的设置修改。
Ubuntu 18.04 gcc make g++ vim cmake 离线安装包 Ubuntu 18.04 gcc make g++ vim cmake 离线安装包 Ubuntu 18.04 gcc make g++ vim cmake 离线安装包 Ubuntu 18.04 gcc make g++ vim cmake 离线安装包 Ubuntu ...
它使用cmake和GCC,以及newlib(libc),STM32Cube。 支持F0 F1 F2 F3 F4 F7 G0 G4 H7 L0 L1 L4 L5设备系列。 要求 cmake> = 3.13 具有newlib的GCC工具链(可选)。 适用于STM32系列的STM32Cube软件包。 项目包含...
cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 cmake教程 ...
1. 完整cmake示例,多晚文件管理 2. 演示如何生成动态库,以及如何使用动态库
stm32-cmake, 概念用于开发 stm32. 这个项目被用来开发 st cortex mcu的STM32 - ARM的应用。 它使用了cmake和 GCC,以及 newlib ( libc ) 。STM32CubeMX或者 ChibiOS 。要求cmake> = 3.0
cmake菜谱中文版, cmake practice 很好的cmake入门资料
CMake Practice 学习cmake经典指南 CMake Practice 学习cmake经典指南 CMake Practice 学习cmake经典指南
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性
cmake_install.cmake
Cmake交叉编译环境配置文档 1、设置交叉编译之前,必须在CMakeList.txt前面加上这样一句,这样CMake才会认为你是要交叉编译: SET(CMAKE_SYSTEM_NAME Linux) 其中Linux是要编译过去的平台,如果你是在Linux下交叉...
解压进入目录,执行install_lgb.sh,一键离线安装nginx+gcc+cmake+ffmege,并配置好防火墙。 主要脚本函数如下: #防火墙端口设置函数 #离线安装gcc套件 #离线安装cmake #tar包编译安装nginx #离线安装ffmpeg工具