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如何指定具体的路径,举个例子
时间: 2023-08-13 13:02:24 浏览: 152
由Visual C++ 4.2开发的一个DLL,它扩展了ISAPI,允许你指定路径
`PUBLIC_HEADER`选项可以通过在目录路径字符串中指定相对路径,来指定要安装的头文件的具体路径。
假设你想将`mylib.h`头文件安装到`/usr/local/include/mylib`目录下,你可以将`PUBLIC_HEADER`选项的值设置为`include/mylib/mylib.h`,如下所示:
```
install(TARGETS mylib
EXPORT MyLibTargets
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
PUBLIC_HEADER DESTINATION include/mylib
INCLUDES DESTINATION include)
install(EXPORT MyLibTargets
FILE MyLibTargets.cmake
NAMESPACE MyLib::
DESTINATION lib/cmake/MyLib)
```
在执行`make install`命令时,CMake会将`mylib.h`头文件复制到`/usr/local/include/mylib`目录下。
需要注意的是,`PUBLIC_HEADER`选项的值必须是相对于安装目录的路径。在上面的例子中,`include/mylib/mylib.h`是相对于`/usr/local`的路径。如果你将安装目录设置为其他路径,例如`/opt/local`,那么头文件将会被安装到`/opt/local/include/mylib`目录下。
阅读全文