zoukankan      html  css  js  c++  java
  • CMake笔记


    1. 设置编译选项,add_compile_option和set CMAKE_CXX_FLAGS两种方式,
    add_compile_option:针对所有编译器,包括C和C++编译器
    而set CMAKE_C_FLAGS和CMAKE_CXX_FLAGS分别针对C和C++
    譬如想加入C++11支持,
    add_compile_option(-std=C++11)但是因为add_compile_option是针对所有类型编译器,所以在编译C代码时,就会产生warning
    此时可以使用 set (CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")

    2. project(PROJECT_NAME),这个不是强制性的,但是最好始终都加上,这一行会引入两个变量
    PROJECT_NAME_BINARY和 PROJECT_NAME_SOURCE_DIR,是等价于以下
    PROJECT_SOURCE_DIR = 全路径/src
    PROJECT_BINARY_DIR = 全路径/build

    3. $ENV的使用场景:因为经常把第三方依赖装到非系统目录下,因此cmake需要使用环境变量
    cmake中对环境变量读写都是通过ENV前缀来访问环境变量
    读取环境变量则要使用 $ENV{JAVA_HOME} 这样的格式
    写环境变量如下:
    set ( ENV{PATH} /home/zhangkunwu)
    读取环境变量时前面一定要加$,而其他时间使用ENV则是指代变量名而不是取值

    4. add_exectuable 告诉工程生成一个可执行文件

    5. add_library 则是告诉工程生成一个库文件--CMakeList.txt文件中,命令不区分大小写,
    而参数和变量是大小写相关的

    6. CMake .. 用来指出CMakeList.txt文件所在的位置

    7. set (CMAKE_VERBOSE_MAKEFILE on) 等同于 SET (CMAKE_VERBOSE_MAKEFILE on)
    要显示构建过程中详细的信息,譬如为了得到更详细的出错信息

    学习无他法,唯有持之以恒
  • 相关阅读:
    iStylePDF c#集成开发示例
    纯js 实现 HTML 元素拖拽,
    前端自动滚动
    双向选择排序(暂定)
    uniapp 分享链接
    Could not find a declaration file for module 'vue-xxx'.
    精通JavaScript(重点内容笔记)更新中...
    如何让DIV模块随着页面固定和不固定
    序列不包含任何匹配元素
    PHPStorm配置Apache服务器(wampServer 版)
  • 原文地址:https://www.cnblogs.com/qianqiannian/p/14770954.html
Copyright © 2011-2022 走看看