需要帮助,使Cmake可以找到第三方库

| 我目前有一个链接到两个第三方库的项目。这些库必须自己构建,然后链接到项目。一个是taglib,另一个是zlib。我注意到,当您在taglib目录上使用Cmake-gui程序时,需要指定zlib的生成和安装位置。 我的目标是让CMake为我的程序做类似的事情。由于这些库的存储位置不一致,因此如何提示用户提供所需库的路径? 我希望这足够具体。     
已邀请:
        对于ZLib,CMake附带了FindZLIB.cmake,您可以“简单地”将find_package调用放入cmakelist中。如有必要,可以对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报告成功或失败。     
        不确定交互式提示,但是您始终可以使用环境变量或执行以下操作:
cmake -D<VAR_NAME>:STRING=<path to custom zlib> .
为cmake提供自定义的zlib或taglib位置。 不要忘记更新FindZLIB.cmake来处理FIND_PATH和FIND_LIBRARY中的此变量     

要回复问题请先登录注册