关闭页面特效

google 总结的开发规范

1|0cmake 基础语法


  • 最低版本

    cmake_minimum_required(VERSION 3.1)

  • Project

    VERSION 指定版本,并设置一系列变量

    DESCRIPTION 项目描述

    LANGUAGES 支持C/CXX/Fortran/ASM ,C/C++ 为默认值

  • 生成可执行文件

    add_executable(Demo demo1.cpp demo2.cpp),作用是:指定的源文件来生成目标可执行文件。

  • 目录下的所有源文件以列表的形式保存到变量中

    aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC_LIST)
    add_executable(main ${SRC_LIST})

  • 生成库文件

    • 库类型包括 STATIC、SHARED、MODULE、OBJECT 等。如果没有指定库类型,那么 BUILD_SHARED_LIBS 的值将决定编译 STATIC 或者 SHARED。

      set(BUILD_SHARED_LIBS ON)
      add_library(${PROJECT_NAME} ${SRCS_MAIN})

    • ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) 默认是静态库

  • target 生成
    add_library 以及 add_executable 来生成的。

  • 指定查找头文件的搜索路径

    include_directories (${HELLO_SOURCE_DIR}/Hello),效果为 增加hello 为 include 目录。默认会在/usr/local/include//usr/include/中寻找。补充:官网不推荐使用INCLUDE_DIRECTORIES

    • target_include_directories():指定目标包含的头文件路径。
  • 链接库的搜索路径
    link_directories(),相当于gcc - L(Library)参数; 也相当于环境变量中LD_LIBRARY_PATH的路径的作用。

    link_directories (${PROJECT_BINARY_DIR}/Hello)

    • target_link_directories(demo /my/libs/dir)

      cmake 不鼓励使用 这样使用,建议使用link_directories 或者target_link_libraries

  • 给目标文件连接库

    target_link_libraries: 添加链接库,相当于 gcc -l

    target_link_libraries(demo Hello) 将'可执行文件'与'Hello连接'成'最终'文件demo

  • 显示定义变量

    set(var, [value])

    例如:

    set(SRC_LIST add.h add.cpp)

    set(SRC_LIST ${SRC_LIST} main.cpp) 追加main.cpp

  • 设置宏定义

    2|0预定义宏


    add_definitions(-D宏名称)

    例如:

    add_definitions(-DWINDOWS)

    add_definitions(-DLINUX)

  • 设置编译选项

set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -march=native -O3 -frtti -fpermissive -fexceptions -pthread")

  • 预定义的变量

    PROJECT_SOURCE_DIR:我们使用cmake命令后紧跟的目录,一般是工程的根目录;

    PROJECT_BINARY_DIR:执行cmake命令的目录,{PROJECT_SOURCE_DIR}/build;

    CMAKE_CURRENT_LIST_FILE:输出调用这个变量的CMakeLists.txt的完整路径;

    CMAKE_CXX_FLAGS:设置C++编译选项,也可以通过指令ADD_DEFINITIONS()添加;

    CMAKE_BUILD_TYPE:build 类型(Debug, Release, …)

    set(ENV{CMAKE_PATH} "F:/cmake") 将CMAKE_PATH 这个环境变量设为"F:/cmake"

  • 编译开关 option

    cmake 中的 option 起到编译开关的作用。

  • 宏开关

    add_definitions()相当于 C/C++ 里面的 #define 宏定义功能.

    cmake -DTEST=ON .. 开启宏的开关


__EOF__

作  者wsl-hitsz
出  处https://www.cnblogs.com/wsl-hitsz/p/16879903.html
关于博主:编程路上的小学生,热爱技术,喜欢专研。评论和私信会在第一时间回复。或者直接私信我。
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!

posted @   wsl-hitsz  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
0
0
关注
跳至底部
点击右上角即可分享
微信分享提示