IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> CMake 重要指令和常用变量 -> 正文阅读

[C++知识库]CMake 重要指令和常用变量

  1. cmake_minimum_required: 指定CMake的最小版本要求
    cmake_minimum_required(VERSION versionNumber [FATAL_ERROR])
    cmake_minimumrequired(VERSION 2.8.3)

  2. project: 定义工程名称,并可指定工程支持的语言
    project(projectname [CXX] [C] [Java])
    project(HELLOWORLD)

  3. set: 显式的定义变量
    set(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])
    set(SRC sayhello.cpp hello.cpp)

  4. include_directories: 向工程添加多个特定的头文件搜索路径–>相当于指定g++编译器的-I参数
    include_directories([AFTER | BEFORE] [SYSTEM] dir1 dir2 …)
    include_directories(/usr/include/myincludefolder ./include)

  5. link_directories: 向工程添加多个特定的库文件搜索路径 --> 相当于指定g++编译器的-L参数
    link_directories(dir1 dir2…)

  6. add_library: 生成库文件
    add_library(libname [SHARED | STATIC | MODULE] [EXCLUDE_FROM_ALL] source1 source2 … sourceN)
    add_library(hello SHARED ${SRC}) --> 通过变量SRC生成libhello.so共享库,注意库名字掐头去尾

  7. add_compile_options: 添加编译参数
    add_compile_options( …)
    add_compile_options(-Wall -std=c++11 -O2)

  8. add_executable: 生成可执行文件
    add_executable(exename source1 source2 … sourceN)
    add_executable(main main.cpp)

  9. target_link_libraries: 为target添加需要链接的库 --> 相当于指定g++编译器的-l参数
    target_link_libraries(main hello)

  10. add_subdirectory: 向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制存放的位置
    add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
    add_subdirectory(src) --> 添加src子目录,src中需要一个CMakeLists.txt

  11. aux_source_directory: 发现一个目录下所有的源代码文件并将列表存储在一个变量中,这个指令临时被用来自动构建源文件列表
    aux_source_directory(dir VARIABLE)
    aux_source_directory(. SRC)
    add_executable(main ${SRC})

  12. CMake常用变量
    (1)CMAKE_C_FLAGS gcc编译选项
    CMAKE_CXX_FLAGS g++编译选项
    set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -std=c++11”) ->在g++编译选项后追加

    (2)CMAKE_BUILD_TYPE 编译类型(Debug, Release)
    set(CMAKE_BUILD_TYPE Debug) --> 设定编译类型为debug,调试时需要选择debug
    set(CMAKE_BUILD_TYPE Release) -->发布时选择release
    (3)CMAKE_C_COMPILER: 指定C编译器
    CMAKE_CXX_COMPILER: 指定C++编译器
    EXECUTABLE_OUTPUT_PATH: 可执行文件输出的存放路径
    LIBRARY_OUTPUT_PATH: 库文件输出的存放路径

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-16 18:39:12  更:2021-11-16 18:40:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:21:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码