美文网首页
cmake学习

cmake学习

作者: Bystander_1996 | 来源:发表于2020-03-30 10:25 被阅读0次

1. CHECK_CXX_COMPILER_FLAG

检查CXX编译器是否支持给定的flag
必须先include(CheckCXXCompilerFlag)
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG(<flag> <var>)
CHECK_CXX_COMPILER_FLAG 赋值给的var是个bool型
例子:

include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
   add_definitions(-DCOMPILEDWITHC11)
   message(STATUS "Using flag -std=c++11.")
elseif(COMPILER_SUPPORTS_CXX0X)
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
   add_definitions(-DCOMPILEDWITHC0X)
   message(STATUS "Using flag -std=c++0x.")
else()
   message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()

2. cmake常用命令

include_directories 指定头文件的搜索路径,相当于指定gcc编译器的-I参数

link_directories 动态链接库或静态链接库的搜索路径,相当于指定gcc的-L参数

add_subdirectory 包含子目录,当工程包含多个子目录时,此命令有用

add_definitions 添加编译参数,比如add_definitions(-DDEBUG)将在gcc命令行添加DEBUG宏定义

add_executable 编译可执行程序

target_link_libraries 指定链接库,相同于指定-l参数

3.cmake 内置变量

CMAKE_C_COMPILER 指定C编译器,通常,CMake运行时能够自动检测C语言编译器。进行嵌入式系统开发时,通常需要设置此变量,指定交叉编译器。

CMAKE_CXX_COMPILER 指定C++编译器

CMAKE_C_FLAGS 指定编译C文件时编译选项,比如-g指定产生调试信息。也可以通过add_definitions命令添加编译选项。

EXECUTABLE_OUTPUT_PATH 指定可执行文件存放的路径。

LIBRARY_OUTPUT_PATH 指定库文件放置的路径

BUILD_SHARED_LIBS Switch between shared and static libraries

CMAKE_BUILD_TYPE build 类型(Debug, Release),-DCMAKE_BUILD_TYPE=Debug

内置变量的使用:

在CMakeLists.txt中指定,使用set
cmake命令中使用,如cmake -DBUILD_SHARED_LIBS=OFF

相关文章

  • cmake学习笔记6-catkin的CmakeList.txt讲

    引用cmake学习笔记-cmakelist.txt创建项目示例cmake的介绍和使用 Cmake实践推荐cmake...

  • CMake学习

    CMake学习 本篇分享一下有关CMake的一些学习心得以及相关使用。 本文目录如下: [1、CMake介绍] [...

  • 教程

    通过例子学习CMake[https://sfumecjf.github.io/cmake-examples-Chi...

  • CMake学习

    CMake学习 参考自《Cmake Practice --Cjacker》 基本语法规则 变量的引用 变量使用${...

  • 学习CMake(一)

    开篇立意,这个系列是为了让我能够更快更好的学习CMake这个工具,学习的资料源于cmake-bulidsystem...

  • CMake学习小结--变量

    CMake学习小结 参考资料 CGold的Cmake教程 -- 这个教程很新: https://cgold.rea...

  • 学习cmake

    make cmake是为了支持make的跨平台而出现的。因此,我们首先学习make,可以看这里。 cmake ma...

  • CMake学习

    目录 什么是CMake? linux平台安装CMake CMake的helloworld 1. 什么是CMake?...

  • 学习 cmake

    打包工具 cmake brazel qmake 在 c++圈是比较流行的几款最近学习主流的cmake首先在使用c...

  • CMake学习

    前言:最近在学习NDK时,一些学习资料的项目都是在eclipse上写的,这些项目都是基于NDK构建的,但是现在的A...

网友评论

      本文标题:cmake学习

      本文链接:https://www.haomeiwen.com/subject/fnuqictx.html