Linux下CMake简明教程(八) 添加编译选项
代码在git
有时编译程序时想添加一些编译选项,如-Wall,-std=c++11等,就可以使用add_compile_options来进行操作。
这里以一个简单程序来做演示,main.cpp如下
#include <iostream>int main(void)
{auto data = 100;std::cout << "data: " << data << "\n";return 0;
}
CMakeLists.txt内容如下,
cmake_minimum_required (VERSION 2.8)project (demo)set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)add_compile_options(-std=c++11 -Wall) add_executable(main main.cpp)
整体目录结构如下,
.
├── bin
├── build
├── CMakeLists.txt
└── main.cpp
然后cd到build目录下,执行cmake … && make命令,就可以在bin目录下得到main的elf文件
Linux下CMake简明教程(八) 添加编译选项相关推荐
- Linux下CMake简明教程(九) 添加控制选项
代码在git 有时希望在编译代码时只编译一些指定的源码,可以使用cmake的option命令,主要遇到的情况分为2种: 本来要生成多个bin或库文件,现在只想生成部分指定的bin或库文件 对于同一个b ...
- Linux下CMake简明教程(二)同一目录下多个源文件
代码在git 接下来进入稍微复杂的例子:在同一个目录下有多个源文件.在之前的目录下添加2个文件,testFunc.c和testFunc.h.添加完后整体文件结构如下, (base) ledi@ledi ...
- Linux下CMake简明教程(一)简单入门
代码链接 CMake是开源.跨平台的构建工具,可以让我们通过编写简单的配置文件去生成本地的Makefile,这个配置文件是独立于运行平台和编译器的,这样就不用亲自去编写Makefile了,而且配置文件 ...
- Linux下CMake简明教程(七)对库进行链接
代码在git 既然我们已经生成了库,那么就进行链接测试下.重新建一个工程目录,然后把上节生成的库拷贝过来,然后在在工程目录下新建src目录和bin目录,在src目录下添加一个main.c,整体结构如下 ...
- Linux下CMake简明教程(五)正规一点的组织结构
代码在git 正规一点来说,一般会把源文件放到src目录下,把头文件放入到include文件下,生成的对象文件放入到build目录下,最终输出的elf文件会放到bin目录下,这样整个结构更加清晰.让我 ...
- Linux下CMake简明教程(四)不同目录下多个源文件
代码在git 一般来说,当程序文件比较多时,我们会进行分类管理,把代码根据功能放在不同的目录下,这样方便查找.那么这种情况下如何编写CMakeLists.txt呢? 我们把之前的源文件整理一下(新建2 ...
- Linux下CMake简明教程(三)同一目录下多个源文件
如果在同一目录下有多个源文件,那么只要在add_executable里把所有源文件都添加进去就可以了.但是如果有一百个源文件,再这样做就有点坑了,无法体现cmake的优越性,cmake提供了一个命令可 ...
- Linux下CMake简明教程(10) 定义宏来控制打印的信息
代码在git 假设我们有个main.c,其内容如下 #include <stdio.h>int main(void) {#ifdef WWW1printf("hello worl ...
- Linux下CMake简明教程(六)动态库和静态库的编译控制
代码在git 有时只需要编译出动态库和静态库,然后等着让其它程序去使用.让我们看下这种情况该如何使用cmake.首先按照如下重新组织文件,只留下testFunc.h和TestFunc.c ├── CM ...
最新文章
- 旷视孙剑博士提出LGD,训练速度提升51%,适用于目标检测的知识蒸馏
- TMG学习(十),发布DMZ区网站
- openresty读取环境变量
- 膨胀腐蚀操作(MATLAB)
- MongoDB架构图解
- Ubuntu系统---NVIDIA 驱动安装
- [Regular] 2、正则表达式基础元字符及分组、捕获
- MYSQL:如何正确高效的使用 MySQL 索引?
- 7-36 社交网络图中结点的“重要性”计算 (30 分)(思路加详解)兄弟们PTA乙级题目冲起来
- 你知道几句?Linux之父十大名言
- Delphi无法修改Clientdataset的字段的解决方法
- 第一节 如何用Go实现单链表
- 深入浅出 Cocoa 之 Core Data(3)- 使用绑定
- 开心消消乐、纯前端实现开心消消乐、开心消消乐代码、HTML+JS实现开心消消乐
- 智慧交通信号控制系统梗概
- python的def什么意思_「Python基础」def是什么?如何自定义函数def
- Mac 安装 Icarus-Verilog 报错解决方案参考
- windows上EndNote的安装和使用,使用报错“服务器运行失败”
- 最新CAD机械二维三维图块集
- 堪称教科书级别的Android音视频入门进阶学习手册,开源分享