如何正确的使用CMake

  介绍

如何正确的使用CMake ?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

CMake是一个比让更高级的编译配置工具,它可以根据不同平台,不同的编译器,生成相应的Makefile。通过编写CMakeLists。txt,可以控制生成的Makefile,从而控制编译过程.CMake自动生成的Makefile不仅可以通过让命令构建项目,生成目标文件,还支持安装(make install),测试安装的程序是否能正确执行(做测试,或者ct),生成当前平台的安装包(包),生成源码包(使package_source),产生仪表板显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。如果有嵌套目录,子目录下可以有自己的CMakeLists。txt。

在linux平台下使用CMake生成Makefile并编译的流程如下:

1。编写CMake配置文件CMakeLists。txt .

2。执行命令cmake路径或者ccmake路径生成Makefile。其中,路径是CMakeLists。txt所在的目录。

3。使用让命令进行编译。

语法

CMake基本语法由命令,注释和空格组成,其中命令是不区分大小写的。符号#后面的内容被认为是注释。命令由命令名称,小括号和参数组成,参数之间使用空格进行间隔。变量引用使用$ {VAR}形式。

命令(args …)#评论

常用命令:

,,cmake_minimum_required(版本2.8)# CMake最低版本号要求

项目(演示)#指定项目的名称

设置(src主要。cpp…),#设置变量

include_directories (/usr/include/jsoncpp),,,,,,#添加头文件目录,比如使用的一些lib库

aux_source_directory (。DIR_SRCS) #查找当前目录下的所有源文件,并将名称保存到DIR_SRCS变量

add_subdirectory(数学)#添加数学子目录

add_executable(主要演示。cc…),第#指定生成目标,一个参数为目标文件名

add_library (MathFunctions $ {DIR_LIB_SRCS}) #添加一个库文件

target_link_libraries(演示MathFunctions),,#添加链接库

获取更多CMake信息:

CMake——帮助

CMake——help-command-list

CMake——help-variable-list

示例代码

示例代码1:

cmake_minimum_required (VERSION  2.8),,,, #, CMake 最低版本号要求      集(CMAKE_CXX_FLAGS “化=c++ 0 x") #,设置编译参数   include_directories (/usr/include/jsoncpp) #,添加头文件目录      集(src #,设置变量src,将所有源文件添加到变量src   SamsungRequestResolver.cpp才能   SamsungResolverContainer.cpp才能   SamsungResponseResolver.cpp才能   BanCat.cpp才能   main.cpp才能   )      add_executable (framework  $ {src}),,,,, #,指定生成目标   target_link_libraries (framework  jsoncpp  hiredis  boost_system),, #,添加链接库

示例代码2:(来源于参考引用1)

代码目录如下所示,。/Demo3目录下有一个主要的。cc文件和一个数学目录。对于这种嵌套目录的情况,需要在目录。/Demo3和。/Demo3/数学下各创建一个CMakeLists。txt。

/Demo3   ,|   +才能——安康;main.cc   ,|   +才能——安康;数学/,,,|   ,,,,+——安康;MathFunctions.cc   ,,,|   ,,,,+——安康;MathFunctions。h

父目录中的CMakeLists。txt:

#,CMake 最低版本号要求   cmake_minimum_required  (VERSION  2.8)   #,项目信息   project  (Demo3)   #,查找当前目录下的所有源文件   #,并将名称保存到,DIR_SRCS 变量   aux_source_directory(只DIR_SRCS)   #,添加,math 子目录,数学目录下的CMakeLists.txt文件和源代码会被处理   add_subdirectory(数学)   #,指定生成目标演示   add_executable (Demo  main.cc)   #,添加链接库   target_link_libraries (Demo  MathFunctions)

子目录中的CMakeLists。txt:

,#,查找当前目录下的所有源文件   #大敌;并将名称保存到,DIR_LIB_SRCS 变量   ,aux_source_directory(只DIR_LIB_SRCS)   ,#生成链接库   ,add_library (MathFunctions  $ {DIR_LIB_SRCS})

编译

在编译之前,首先要将CMakeLists。txt文件放在代码目录中。为了方便管理生成的makefile文件,目标文件等文件,最好创建一个构建目录专门用来存放这些文件。在代码目录,依次执行以下命令:

mkdir 构建   cd 构建   cmake  . .   使

关于如何正确的使用CMake问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

如何正确的使用CMake