软件名称 | 软件版本 |
---|---|
Linux操作系统 | Ubuntu 22.04 LTS(X64) |
cmake | 3.22.1 |
前面我们创建了自己的库,也构建了一个可执行文件对库进行测试,本小节将介绍如何把库文件、头文件、可执行文件分别安装到指定的目录,这里要用到CMake的install命令,相关介绍可以参考这里。
这里假设:我们的安装目录是/home/install/,我们把libmylib.a安装到/home/install/lib下,把mylib.h安装到/home/install/include下,把main可执行文件安装到/home/install/bin下。
指定安装目录前缀,可以使用cmake --install . --prefix "/path/to/install/"
来指定,或通设置CMake变量CMAKE_INSTALL_PREFIX。本例子使用第二种方式,设置CMAKE_INSTALL_PREFIX变量为/home/install/。
example/CMakeLists.txt文件内容:
cmake_minimum_required(VERSION 3.22)
project(example)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output) # 设置可执行目标文件的输出目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output) # 设置静态库文件的输出目录
add_subdirectory(src)
add_subdirectory(lib)
target_link_libraries(main mylib)
if (DEBUG)
target_compile_definitions(mylib PRIVATE DEBUG_INFO)
endif()
set(CMAKE_INSTALL_PREFIX /home/install/)
install(TARGETS main DESTINATION bin)
install(TARGETS mylib DESTINATION lib)
install(FILES lib/mylib.h DESTINATION include)
进入example/build
目录执行cmake ..
、make
和make install
之后,可以发现三个文件已经分别安装到指定的目录。