cmake 添加library

创建库

在mymath 目录下的CMakeLists.txt里增加如下内容

#mymath 目录下有CMakeLists.txt ,mymath.c mymath.h

mytest/mymath/CMakeLists.txt:

#生成mymath 库,默认是生成静态库
add_library(mymath mymath.c)

#发布 ${PROJECT_SOURCE_DIR}/mymath"这个路径下的头文件到工程里面,整个工程里的.c 里

#里这样调用#include “mymath.h”

target_include_directories(mymath PUBLIC "${PROJECT_SOURCE_DIR}/mymath" )

在mytest 目录下的CMakeLists.txt 里添加如下内容

mytest/CMakeLists.txt:
add_subdirectory(mymath)

target_link_libraries(mytest PUBLIC mymath)

#发布 ${PROJECT_BINARY_DIR}这个路径下的头文件到工程里面,整个工程里的.c 里

#里这样调用#include “xxx.h”,一般这个下边的头文件都是动态生成的,比如用configure_file

target_include_directories(mytest PUBLIC "${PROJECT_BINARY_DIR}" )

添加选项

在mymath 目录下的CMakeLists.txt里增加如下内容

option(USE_MYMATH "Use tutorial provided math implementation" ON)
if (USE_MYMATH)
  target_compile_definitions(mymath PRIVATE "USE_MYMATH")
  add_library(mysqrt STATIC
              mysqrt.c
              )
  target_link_libraries(mymath PRIVATE mysqrt)
endif()

在mymath.c 中code

#ifdef USE_MYMATH

#  include "mysqrt.h"

#else

#  include "math.h"

#endif

...

#ifdef USE_MYMATH

return mysqrt(x);

#ese

return sqrt(x);

#endif

...

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值