cmake中文手册,cmake详细教程

前言超详细超全CMake教程:步骤2 :添加库

步骤2 :添加库将库添加到项目中。 这个库包括实现我们自己的计算数字的平方根。 然后,可执行文件可以使用此库而不是编译器提供的标准平方根函数。

在本教程中,您将在MathFunctions中包含库。 此目录包含头文件MathFunctions.h和源文件mysqrt.cxx。 源文件包含调用函数mysqrt,它提供与编译器的sqrt函数类似的功能。

在MathFunctions目录中创建CMakeLists.txt文件,并添加以下代码:

add _ library mathfunctionsmysqrt.cxx )将add_subdirectory )添加到顶层CMakeLists.txt文件中以使用新库将新库添加到可执行文件中,并添加MathFunctions作为包含目录。 现在,mysqrt.h可以找到头文件。 顶层CMakeLists.txt文件的最后几行应该如下所示:

# addthemathfunctionslibraryadd _ subdirectory math functions ) addtheexecutableadd_executable ) tutorial tutorial.cxx Tata unctions ) addthebinarytreetothesearchpathforincludefiles # othatwewillfindtutorialconfig.h target _ include _ directories tutorial public ‘ $ {项目_ binary _ dir } ‘ $ { project } 第一步是将选项添加到顶级CMakeLists.txt文件中。

option use _ my math ‘ usetutorialprovidedmathimplementation ‘ on ) configureaheaderfiletopasssomeofthecmakesettings # othesourcecodeconfigure _ file tutorial config.h.intutorial config.h )此选项显示在cmake-gui和ccmake中。 默认值为on,用户可以更改此值。 由于此设置存储在缓存中,因此用户不必在每次在构建目录中运行CMake时都设置此值。

以下更改是对MathFunctions库的构建和链接具有判断标准。 因此,将顶级CMakeLists.txt文件的末尾修改如下:

ifuse_mymath ) add_subdirectorymathfunctions ) list ) append extra _ libsmathfunctions list ) append extra _ in ctra addtheexecutableadd _ executable tutorial tutorial.cxx ) target_link_libraries ) tutorial public $ { extr IC } addthebblic othatwewillfindtutorialconfig.h target _ include _ directories tutorial public $ { project _ binary _ dir } ) $ { extttext ) 这是处理许多可选组件时的典型方法,下一步将介绍现代方法。

更改源代码相当简单。 首先,在tutorial.cxx中包含MathFunctions.h头文件。

# ifdef use_mymath # include ‘ math functions.h ‘ # endif然后将以下代码添加到tutorial.cxx中,以控制use _ my math使用哪个平方根函数:

# ifdef use _ mymathconstdoubleoutputvalue=my sqrt input value ); # elseconstdoubleoutputvalue=sqrt 输入值); #endif源代码需要USE_MYMATH,因此可以将以下代码添加到TutorialConfig.h.in中:

#cmakedefine USE_MYMATH练习:为什么我们的TutorialConfig.h.in文件中的USE_MYMATH最后放置很重要? 如果逆转两者会发生什么?

运行cmake可执行文件或cmake-gui配置项目,并使用选定的构建工具进行生成。 接下来,运行生成的教程可执行文件。

构建方式与第一个教程相同。

更新USE_MYMATH的值吧。 你在终端上最简单的方法是使用cmake-gui或ccmake。 或者,如果要从命令行更改选项,请尝试以下操作:

cmake ./Step2 -DUSE_MYMATH=OFF重建并重新运行。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注