首页 > 解决方案 > 从 cmake 库组件获取库路径

问题描述

我需要一个项目的 Poco 库,我找到它们

find_package (Poco COMPONENTS Foundation Net Crypto NetSSL REQUIRED)

现在,我需要将它们安装在特定目录中,因为它们将与我的项目一起打包cpack,因为我们使用以下命令创建了一个包含项目和所有依赖项的 zip 文件

cpack -G ZIP -C Release

并且 zip 文件还应该包含链接的 poco 库。

我有包含 poco 组件的变量:

message (STATUS "Poco libraries are ${Poco_LIBRARIES}")
# output is -- Poco libraries are Poco::Foundation;Poco::Zip;Poco::Foundation;Poco::Net;Poco::Crypto;Poco::NetSSL

如何检索库列表(/path/to/libPocoFoundation.so等)以告诉 CMake 在哪里安装它们?如果我使用

install (TARGETS Poco::Foundation Poco::Zip Poco::Foundation Poco::Net Poco::Crypto Poco::NetSSL
DESTINATION bin
COMPONENT applications)

我收到一个错误,而如果我用路径设置它,如下所示:

file (GLOB_RECURSE POCO_LIBS "/opt/*libPoco*")
install(
  FILES ${POCO_LIBS} 
  DESTINATION bin
  COMPONENT applications
  )

有用。问题是不同的开发人员在不同的位置安装了 poco,我们没有环境变量或类似的东西来决定在哪里找到它们。可以像上一个install命令一样复制库,但是使用find_package?

标签: installationcmakepococpack

解决方案


推荐阅读