【记那些年我们链不明白的青春】Cmake常用函数一文总结

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

前言

以一个简短且好理解的方式记录一下常用Cmake的函数区别于网上的那些抄来抄去。废话少全精华。

link_directories

link_directories(${PROJECT_SOURCES_DIR}/lib)

是对于 .so 文件的

函数作用添加一个.so库文件的搜索路径 使得链接的时候直接在后面添加库的名称可以被找得到
比如liberal.so 库的名称即为gdal而不是全称

target_link_libraries

target_link_libraries(${PROJECT_NAME} ...)

…放的即是上面说到的库的名称

函数作用将…可以多个全部链接到PROJECT_NAME这个东西上 但这里…部分都已经是.so文件了包括自己生成的.so和已有的.so

这个函数不仅可以将库文件链接到可执行文件上 也可以将库文件链接到库文件上串起来 有画面了

include_directories

include_directories(${INCLUDE_PATH})

函数作用添加头文件所在路径

不仅是第三方库的头文件 还有自己写的头文件的路径
这个目录直接影响cpp代码中#include的搜索路径
即如果第三方头文件在这里被include了 那么我们自己引用头文件时直接#include 不用添加冗杂的路径

FILE(GLOB_RECURCE MY_SRC ${SRC_PATH}/*.cpp)

FILE(GLOB_RECURCE MY_SRC ${SRC_PATH}/*.cpp)

函数作用将SRC_PATH路径下的所有.cpp文件全部用一个名称——MY_SRC代替 相当好用了

add_library(mylib ${MY_SRC})

add_library(mylib ${MY_SRC})

函数作用将MY_SRC中的.cpp文件编译成.so库

这里因为没有STATIC 所以是动态库
和上一个结合使用 很方便

add_library(mylib STATIC ${MY_SRC})

add_library(mylib STATIC ${MY_SRC})

函数作用将MY_SRC中的.cpp文件编译成静态库.a

最后

易混淆的应该都有了 以后遇见更常用的再来更新

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

“【记那些年我们链不明白的青春】Cmake常用函数一文总结” 的相关文章