word格式精心整理版
范文范例 学习指导
CMake手册
本文来源: HYPERLINK /coderfenghc/ /coderfenghc/
目录:CMD#
HYPERLINK /coderfenghc/archive/2013/01/20/2846621.html CMake 用法导览
Preface : 本文是CMake官方文档CMake Tutorial ( HYPERLINK /cmake/help/cmake_tutorial.html /cmake/help/cmake_tutorial.html) 的翻译。通过一个样例工程从简单到复杂的完善过程,文档介绍了CMake主要模块(cmake, ctest, cpack)的功能和使用环境;从中可以一窥cmake的大体形貌。正文如下:
???? 本文下述内容是一个手把手的使用指南;它涵盖了CMake需要解决的公共构建系统的一些问题。这些主题中的许多主题已经在Mastering CMake一书中以单独的章节被介绍过,但是通过一个样例工程看一看它们如何工作也是非常有帮助的。本指南可以在CMake源码树的Tests/Tutorial路径下找到。每一步都有它自己的子路径,其中包含该步骤的一个完整的指南。
作为基础的起始点(步骤1) 最基本的工程是一个从源代码文件中构建可执行文件的例子。对于简单工程,只要一个两行的CMakeLists文件就足够了。这将会作为我们指南的起点。这份CMakeLists文件看起来像是这样:
HYPERLINK /coderfenghc/archive/2013/01/20/2846621.html ?
1
2
3
cmake_minimum_required (VERSION 2.6)
project (Tutorial)
add_executable(Tutorial tutorial.cxx)
注意到这个例子在CMakeLists文件中使用了小写。CMake支持大写、小写、混合大小写的命令。tutorial.cxx中的源代码用来计算一个数的平方根,并且它的第一版非常简单,如下所示:
HYPERLINK /coderfenghc/archive/2013/01/20/2846621.html ?
// A simple program that computes the square root of a number
// 计算一个数的平方根的简单程序
#include stdio.h
#include stdlib.h
#include math.h
int main (int argc, char *argv[])
{
??if (argc 2)
????{
????fprintf(stdout,Usage: %s number\n,argv[0]);
????return 1;
????}
??double inputValue = atof(argv[1]);
??double outputValue = sqrt(inputValue);
??fprintf(stdout,The square root of %g is %g\n,
??????????inputValue, outputValue);
??return 0;
}
????? 我们添加的第一个特性用来为工程和可执行文件指定一个版本号。虽然你可以在源代码中唯一指定它,但是你在CMakeLists文件中指定它可以提供更好的灵活性。如下所示,我么可以通过添加一个版本号来修改CMakeLists文件:
HYPERLINK /coderfenghc/archive/2013/01/20/2846621.html ?
cmake_minimum_required (VERSION 2.6)
project (Tutorial)
# 版本号
set (Tutorial_VERSION_MAJOR 1)
set (Tutorial_VERSION_MINOR 0)
# 配置一个头文件,通过它向源代码中传递一些CMake设置。
configure_file (
??${PROJECT_SOURCE_DIR}/TutorialConfig.h.in
??${PROJECT_BINARY_DIR}/TutorialConfig.h
??)
# 将二进制文件树添加到包含文件的搜索路径中,这样我们可以找到TutorialConfig.h
include_directories(${PROJECT_BINARY_DIR})
# 添加可执行文件
add_executabl
原创力文档

文档评论(0)