加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 需要帮助,使Cmake找到第三方库

发布时间:2020-12-16 03:32:25 所属栏目:百科 来源:网络整理
导读:我目前有一个链接到两个第三方图书馆的项目.这些图书馆必须自己建立,然后与项目相关联.一个是taglib,另一个是zlib.我注意到,当您在taglib目录中使用Cmake-gui程序时,您需要指定zlib的构建和安装位置. 我的目标是让CMake为我的程序做一个类似的事情.由于存储
我目前有一个链接到两个第三方图书馆的项目.这些图书馆必须自己建立,然后与项目相关联.一个是taglib,另一个是zlib.我注意到,当您在taglib目录中使用Cmake-gui程序时,您需要指定zlib的构建和安装位置.

我的目标是让CMake为我的程序做一个类似的事情.由于存储这些库的位置将不一致如何提示用户提供所需库的路径?

我希望这足够具体.

解决方法

在ZLib的情况下,一个FindZLIB.cmake与CMake一起提供,您可以“简单地”将一个 find_package调用放在你的cmakelists中.如果需要,您可以对findzlib.cmake进行一些修改,以满足您的需要.例如.在搜索库时,添加ZLIB_DIR作为附加提示.然后可以由用户设置此ZLIB_DIR.

假设您的库/可执行文件称为YourProject,您可以使用它,如下所示.

find_package( ZLIB REQUIRED )
if ( ZLIB_FOUND )
    include_directories( ${ZLIB_INCLUDE_DIRS} )
    target_link_libraries( YourProject ${ZLIB_LIBRARIES} )
endif( ZLIB_FOUND )

您应该使用与TagLib相同的方法,而应该编写自己的FindTagLib.cmake(或搜索一个好的).

这里的重要部分是您可以向用户提供设置TagLib_DIR变量的选项,该变量用于搜索TagLib,并使用FindPackageHandleStandardArgs报告成功或失败.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读