代码在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简明教程(八) 添加编译选项相关推荐

  1. Linux下CMake简明教程(九) 添加控制选项

    代码在git 有时希望在编译代码时只编译一些指定的源码,可以使用cmake的option命令,主要遇到的情况分为2种: 本来要生成多个bin或库文件,现在只想生成部分指定的bin或库文件 对于同一个b ...

  2. Linux下CMake简明教程(二)同一目录下多个源文件

    代码在git 接下来进入稍微复杂的例子:在同一个目录下有多个源文件.在之前的目录下添加2个文件,testFunc.c和testFunc.h.添加完后整体文件结构如下, (base) ledi@ledi ...

  3. Linux下CMake简明教程(一)简单入门

    代码链接 CMake是开源.跨平台的构建工具,可以让我们通过编写简单的配置文件去生成本地的Makefile,这个配置文件是独立于运行平台和编译器的,这样就不用亲自去编写Makefile了,而且配置文件 ...

  4. Linux下CMake简明教程(七)对库进行链接

    代码在git 既然我们已经生成了库,那么就进行链接测试下.重新建一个工程目录,然后把上节生成的库拷贝过来,然后在在工程目录下新建src目录和bin目录,在src目录下添加一个main.c,整体结构如下 ...

  5. Linux下CMake简明教程(五)正规一点的组织结构

    代码在git 正规一点来说,一般会把源文件放到src目录下,把头文件放入到include文件下,生成的对象文件放入到build目录下,最终输出的elf文件会放到bin目录下,这样整个结构更加清晰.让我 ...

  6. Linux下CMake简明教程(四)不同目录下多个源文件

    代码在git 一般来说,当程序文件比较多时,我们会进行分类管理,把代码根据功能放在不同的目录下,这样方便查找.那么这种情况下如何编写CMakeLists.txt呢? 我们把之前的源文件整理一下(新建2 ...

  7. Linux下CMake简明教程(三)同一目录下多个源文件

    如果在同一目录下有多个源文件,那么只要在add_executable里把所有源文件都添加进去就可以了.但是如果有一百个源文件,再这样做就有点坑了,无法体现cmake的优越性,cmake提供了一个命令可 ...

  8. Linux下CMake简明教程(10) 定义宏来控制打印的信息

    代码在git 假设我们有个main.c,其内容如下 #include <stdio.h>int main(void) {#ifdef WWW1printf("hello worl ...

  9. Linux下CMake简明教程(六)动态库和静态库的编译控制

    代码在git 有时只需要编译出动态库和静态库,然后等着让其它程序去使用.让我们看下这种情况该如何使用cmake.首先按照如下重新组织文件,只留下testFunc.h和TestFunc.c ├── CM ...

最新文章

  1. 旷视孙剑博士提出LGD,训练速度提升51%,适用于目标检测的知识蒸馏
  2. TMG学习(十),发布DMZ区网站
  3. openresty读取环境变量
  4. 膨胀腐蚀操作(MATLAB)
  5. MongoDB架构图解
  6. Ubuntu系统---NVIDIA 驱动安装
  7. [Regular] 2、正则表达式基础元字符及分组、捕获
  8. MYSQL:如何正确高效的使用 MySQL 索引?
  9. 7-36 社交网络图中结点的“重要性”计算 (30 分)(思路加详解)兄弟们PTA乙级题目冲起来
  10. 你知道几句?Linux之父十大名言
  11. Delphi无法修改Clientdataset的字段的解决方法
  12. 第一节 如何用Go实现单链表
  13. 深入浅出 Cocoa 之 Core Data(3)- 使用绑定
  14. 开心消消乐、纯前端实现开心消消乐、开心消消乐代码、HTML+JS实现开心消消乐
  15. 智慧交通信号控制系统梗概
  16. python的def什么意思_「Python基础」def是什么?如何自定义函数def
  17. Mac 安装 Icarus-Verilog 报错解决方案参考
  18. windows上EndNote的安装和使用,使用报错“服务器运行失败”
  19. 最新CAD机械二维三维图块集
  20. 堪称教科书级别的Android音视频入门进阶学习手册,开源分享

热门文章

  1. FPGA篇(九)关于ASCII码
  2. 十一、Linux时间
  3. 最轻量级的C协程库:Protothreads
  4. 升级 Visual Studio 2015 CTP 5 的坑、坑、坑
  5. RxAndroid2 / RxJava2简单的CompletableObserver
  6. leetcode 8. String to Integer (atoi)
  7. Hive 和普通关系数据库的异同
  8. so 问题来了,你现在值多少钱?
  9. Away3D 的实体收集器Bug
  10. SharePoint Designer 2013 Workflow