CMake

最近被CMake折磨得不成人样。网上教材一堆,复制到自己这里,就是没效果。现整理一下,方便自己以后查阅。

红色的表示要替换成自己的环境。

2024-02-07

add_executable
target_link_libraries

先add_executable,再写target_link_libraries,如果顺序错了,必失败。

先上一个亲测有效的例子:自己的写的man.c链接第三方动态库so

cmake_minimum_required(VERSION 3.22.1)
project("myapplication")
add_executable(${PROJECT_NAME} main.c)

target_link_libraries(${PROJECT_NAME}
/root/cmake/so/libavutil.so
/root/cmake/so/libswresample.so
/root/cmake/so/libavcodec.so)

因为so之间存在依赖关系,所以直接引用了3个so

显示变量的方式:  message(STATUS "MY_VARIABLE: ${PROJECT_NAME}")

设置变量的方式:  set(so_path "/root/cmake/so") 

高级一点的写法:(减少代码简单复制)

set(so_path "/root/cmake/so")
find_library(avutil avutil ${so_path})
find_library(swresample swresample ${so_path})
find_library(avcodec avcodec ${so_path}
target_link_libraries(${PROJECT_NAME}
avutil
swresample
avcodec
)

相应的so文件放在/root/cmake/so下面,根据自己实际情况改path

 

posted on 2024-02-07 16:13  angelshelter  阅读(7)  评论(0编辑  收藏  举报

导航