您的位置:首页 > 其它

七步入门CMake之第二步(添加库)

2013-09-01 08:57 218 查看
这一步主要是学会在项目里添加库

如果有一个文件夹,文件夹名为:MathFunctions,文件夹里包含了两个文件,即MathFunctions.h和mysqrt.cxx,

一个是头文件,一个是sqrt函数的功能实现,要将此文件夹编译层库,需在文件夹下添加一个CMakeLists.txt文件

文件中只需添加一行

add_library(MathFunctions mysqrt.cxx)

即可,这句话的含义也很直观,直接通过字面就可以解读:添加一个名为MathFunctios的库,将mysqrt.cxx添加到库里。

下面设置需要调用这个库的项目的CMakeLists.txt文件

只需要添加如下几句话即可:

include_directories("$(PROJECT_SOURCE_DIR}/MathFunctions")

add_subdirectory(MathFunctions)

add_executable(Tutorial tutorial.cxx)

target_link_libraries(Tutorial MathFunctions)

含义也很直观,指定了库的路径,并指定连接器把MathFunctions录包含进去。

如果要把库设置成可选项,则是在项目的CMakeLists.txt文件里添加如下的语句:

# should we use our own math functions?
option (USE_MYMATH
"Use tutorial provided math implementation" ON)

# add the MathFunctions library?
#
if (USE_MYMATH)
include_directories ("${PROJECT_SOURCE_DIR}/MathFunctions")
add_subdirectory (MathFunctions)
set (EXTRA_LIBS ${EXTRA_LIBS} MathFunctions)
endif (USE_MYMATH)

# add the executable
add_executable (Tutorial tutorial.cxx)
target_link_libraries (Tutorial  ${EXTRA_LIBS})


在TutorialConfig.h.in文件里添加如下语句:

#cmakedefine USE_MYMATH

即可

在程序里就可用

#ifdef USE_MYMATH
#include "MathFunctions.h"
#endif
来判断是否使用库了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: