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

这一步主要是学会在项目里添加库

如果有一个文件夹,文件夹名为: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
来判断是否使用库了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值