Cmake使用语法(未完

Cmake使用语法

设置编译类型

1.可执行命令: add_executable()

add_executable(zipapp zipapp.cpp)

zipapp链接可执行文件ziapp.cpp

2.指定编译包含源文件:

add_library(archive x1.cpp x2.cpp x3.cpp)

archive被定义为一个static库,包含编译对象:x1.cpp、x2.cpp、x3.cpp,并且add_library默认生成静态库,add_library(common SHARED …)为动态库

3.建立依赖:target_link_libraries()

target_link_libraries(zipapp archive)

链接zipapp可执行文件,将archive链接静态库

搜索查找

  1. 搜索所有cpp文件:
aux_source_directory(xxx xxx)

搜索当前目录所有.cpp文件并且存储到一个变量中
2. 自定义搜索规则:


file(GLOB SRC_LIST "*.cpp" "protocol/*.cpp")
add_library(demo ${SRC_LIST})
  1. 查找指定库文件
find_library( # 设置路径变量名称
              log-lib
 
              # 指定你想要的cmake找到的ndk的名称
              log )

类似的命令还有 find_file()、find_path()、find_program()、find_package()。

设置目录

  1. 设置包含目录(include文件地址)
include_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${CMAKE_CURRENT_BINARY_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}/include
)
  1. 设置链接库搜索目录
link_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/libs
)
  1. 设置target需要链接的库
target_link_libraries( # 目标库
                       demo
                       # 目标库需要链接的库
                       # log-lib 是上面 find_library 指定的变量名
                       ${log-lib} )

windows系统下,系统会根据链接库目录,搜索lib文件。linux下搜索的so、a文件,倘若都存在,优先链接so
4.指定全路径

target_link_libraries(demo libface.a) # 链接libface.a
target_link_libraries(demo libface.so) # 链接libface.so

设置变量

  1. set直接设置:
set(SRC_LIST main.cpp test.cpp)
add_excutable(demo ${SRC_LIST})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值