使用cmake

时间:2017-04-03 13:38:00

标签: cmake

我正在从手写的Makefile重写库到使用cmake。我正陷入需要从库B库库A库的地步。

我可以使用find_package找到这些库,但是当它们被链接时,cmake抱怨没有构建.so文件的规则,因为它在构建目录中寻找它而不是安装目录。

如果我查看包含此硬编码路径的/usr/lib/cmake/library/libraryConfigVersion.cmake文件,则会对此进行解释。此文件是使用以下步骤创建的:

write_basic_package_version_file(
    "${CMAKE_CURRENT_BINARY_DIR}/libraryConfigVersion.cmake"
    VERSION ${LIBRARY_VERSION}
    COMPATIBILITY AnyNewerVersion
)

export(EXPORT libraryTargets
    FILE "${CMAKE_CURRENT_BINARY_DIR}/library/libraryConfigVersion.cmake"
    NAMESPACE library::
)

(我已将我的图书馆名称替换为' library')。如何让cmake编写正确的路径,以便我可以轻松地从其他cmake项目链接到我的库?

1 个答案:

答案 0 :(得分:0)

命令export实际上导出构建树。这在文档中明确写出。

对于导出安装树,请使用install(TARGETS ... EXPORT)install(EXPORT)。这两个流程都在install命令的文档中描述。

另见CMake教程Exporting and Importing Targets