install(TARGETS mylib mylib_shared EXPORT MyLibTargets ARCHIVE DESTINATION lib LIBRARY DESTINATION lib PUBLIC_HEADER DESTINATION include RUNTIME DESTINATION bin INCLUDES DESTINATION include)中PUBLIC_HEADER的使用例子
时间: 2024-02-10 07:04:05 浏览: 36
`PUBLIC_HEADER`选项用于将目标库的公共头文件安装到指定的目录中。下面是一个使用`PUBLIC_HEADER`选项的例子:
假设你有一个名为`mylib`的库,库的源代码结构如下:
```
mylib/
include/
mylib.h
src/
mylib.cpp
```
你想将`mylib.h`头文件安装到`/usr/local/include`目录下,库文件安装到`/usr/local/lib`目录下。那么,你可以在`CMakeLists.txt`文件中添加如下的`install()`命令:
```
install(TARGETS mylib
EXPORT MyLibTargets
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
PUBLIC_HEADER DESTINATION include
INCLUDES DESTINATION include)
install(EXPORT MyLibTargets
FILE MyLibTargets.cmake
NAMESPACE MyLib::
DESTINATION lib/cmake/MyLib)
```
其中,`PUBLIC_HEADER`选项指定了`mylib.h`头文件需要安装到`include`目录下。在执行`make install`命令时,CMake会将`mylib.h`头文件复制到`/usr/local/include`目录下。
注意,`PUBLIC_HEADER`选项只对静态库和动态库有效。如果你的库是一个可执行文件,则不需要使用`PUBLIC_HEADER`选项。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)