本文主要是介绍cmake (4)引用子目录的库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 目录结构
app
|——main.c
|——libso/
|——hello.c
|——hello.h
|——CMakeLists.txt
|——CmakeLists.txt
CmakeLists.txt
2. CMakeLists.txt
2.1 app文件夹的CMakeLists.txt
project(hello_jelly)
include_directories(${PROJECT_SOURCE_DIR}/../libso)set(APP_SRC main.c)
add_executable(${PROJECT_NAME} main.c)
target_link_libraries(${PROJECT_NAME} helloso)message(${PROJECT_SOURCE_DIR})
2.2 libso文件夹的CMakeLists.tx
project(helloso)set(LIB_SRC hello.c)
add_library(${PROJECT_NAME} SHARED ${LIB_SRC})
2.3 外面那个和app在同一目录下的CMakeLists.txt
cmake_minimum_required (VERSION 3.2)
project(jelly_cmake)add_subdirectory(./app)
add_subdirectory(./libso)
其表示我们要到./app和./libso文件夹下面去寻找Cmake文件然后进行编译
3. install
app目录修改CMakeLists.txt
install(TARGETS ${PROJECT_NAME} DESTINATION bin)libso目录修改的CMakeLists.txt如下:只是在之前的基础上加了最后install一行install(TARGETS ${PROJECT_NAME} DESTINATION ../lib)
3.1 install(TARGETS ${PROJECT_NAME} DESTINATION bin)
安装TARGERS hello_jelly这个可执行文件到${CMAKE_INSTALL_PREFIX}/bin目录下面
- bin前面不能有/,否则会是绝对路径,它不再会去获取${CMAKE_INSTALL_PREFIX}路径,
eg. 我的${CMAKE_INSTALL_PREFIX}路径是/usr/local路径可执行文件安装的路径是:/usr/local/bin/
so库文件的安装路径是:/usr/local/../lib/
这篇关于cmake (4)引用子目录的库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!