使用cmake生成target.cmake文件,其中引用的库文件和头文件路径,能够根据install位置自行生成,举个例子
时间: 2023-12-05 17:04:01 浏览: 83
好的,假设你的项目名为myproject,其中包含一个可执行文件myexe,还依赖于一个名为mylib的库文件。以下是一个示例CMakeLists.txt文件:
```
cmake_minimum_required(VERSION 3.0)
project(myproject)
# 添加可执行文件
add_executable(myexe main.cpp)
# 添加库文件
add_library(mylib SHARED mylib.cpp)
# 链接库文件
target_link_libraries(myexe mylib)
# 安装规则
install(TARGETS myexe DESTINATION bin)
install(TARGETS mylib DESTINATION lib)
install(FILES mylib.h DESTINATION include)
```
上面的CMakeLists.txt文件中,我们定义了一个可执行文件myexe和一个库文件mylib。我们还链接了myexe到mylib上,以便在运行时可以动态链接。最后,我们定义了安装规则,将myexe和mylib安装到bin和lib目录中,将mylib.h安装到include目录中。
当你运行cmake命令并指定安装目录时,例如:
```
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
```
CMake会自动将myexe和mylib安装到/usr/local/bin和/usr/local/lib目录中,并将mylib.h安装到/usr/local/include目录中。在生成的target.cmake文件中,引用的库文件和头文件路径也会根据安装位置自动生成,并自动更新为正确的路径。
阅读全文