gpt4 book ai didi

Windows 上的 cmake "exporting"共享库

转载 作者:行者123 更新时间:2023-12-04 00:05:29 24 4
gpt4 key购买 nike

我正在写一个小型图书馆。我想将其构建为共享库并生成“MyLibraryConfig.cmake”文件,然后我的其他项目可以使用该文件来查找我的库。

我唯一的问题是找出用于在 Windows 下链接的文件的名称/路径 - 生成了两个文件:mylibrary.dll 和 mylibrary.dll.a。

所以我想用类似的东西生成 MyLibraryConfig.cmake 文件:

“设置(MYLIBRARY_LIBRARIES/blah/blah/mylibrary.dll.a)”

然后 MYLIBRARY_LIBRARIES 可以与 target_link_libraries 一起用于我的其他项目。

如何获得这个可链接文件的名称?如果解决方案与平台无关(在 Linux 上返回 .so wile,在 Windows 上返回 .dll.a),我会很高兴

提前致谢

最佳答案

如果您打算让您的库可用于您的其他项目而不安装它 那么您需要 CMake 命令 export .例如:

export(TARGETS MyLib FILE ${CMAKE_SOURCE_DIR}/MyLibraryConfig.cmake)

这会在与顶级 CMakeLists.txt 相同的目录中创建文件 MyLibraryConfig.cmake,并且可以是 include d 在其他 CMake 项目中。


如果您计划安装您的库,那么您需要使用 install(EXPORT ...) 。相反:

install(TARGETS MyLib EXPORT MyLibraryConfig
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib/static)
install(EXPORT MyLibraryConfig DESTINATION cmake)

这会将文件 MyLibraryConfig.cmake 安装到 <install path>/cmake , 然后可以是 include d 由其他项目。

关于Windows 上的 cmake "exporting"共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15721748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com