怎么让我的头文件安装到独立的目录,类似 /usr/local/hiredis
时间: 2023-08-23 22:05:06 浏览: 152
要让头文件安装到独立的目录,可以使用CMake的INSTALL_INTERFACE关键字。这个关键字可以指定在安装时应该将文件安装到哪里。这里提供一个示例CMakeLists.txt文件,说明如何将头文件安装到独立的目录:
```
cmake_minimum_required(VERSION 3.10)
project(myproject)
# 添加头文件目录
include_directories(include)
# 添加可执行文件
add_executable(myexe main.cpp)
# 安装可执行文件
install(TARGETS myexe RUNTIME DESTINATION bin)
# 安装头文件
install(DIRECTORY include/ DESTINATION include/myproject
FILES_MATCHING PATTERN "*.h"
PATTERN "private" EXCLUDE
)
# 安装配置文件
install(FILES myproject-config.cmake DESTINATION lib/cmake/myproject)
# 设置安装路径
set(CMAKE_INSTALL_PREFIX /usr/local/myproject)
# 指定安装目录
set(INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include")
set(INSTALL_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/lib/cmake/myproject")
# 设置头文件的安装路径
set_target_properties(myexe PROPERTIES
PUBLIC_HEADER "include/myheader.h"
)
# 安装编译器生成的导入/导出文件
install(EXPORT myproject-targets
FILE myproject-targets.cmake
DESTINATION ${INSTALL_CMAKE_DIR}
)
```
在这个示例中,我们使用了以下命令将头文件安装到独立的目录:
```
install(DIRECTORY include/ DESTINATION include/myproject
FILES_MATCHING PATTERN "*.h"
PATTERN "private" EXCLUDE
)
```
这个指令将include目录下的所有.h文件都安装到/usr/local/myproject/include目录下。
还需要在set_target_properties指令中设置PUBLIC_HEADER属性,将要安装的头文件指定为myheader.h:
```
set_target_properties(myexe PROPERTIES
PUBLIC_HEADER "include/myheader.h"
)
```
这样,在执行make install命令时,CMake就会将myheader.h安装到/usr/local/myproject/include目录下。
需要注意的是,如果要使用这个示例,需要将myheader.h文件放在include目录下。同时,CMakeLists.txt文件中的路径需要根据具体的项目进行修改。
阅读全文