CMake部署所需的库
是否可以让CMake收集编译期间使用的所有包库,递归地获取它们所需的库,然后将它们全部放在一个目录中CMake部署所需的库,cmake,Cmake,是否可以让CMake收集编译期间使用的所有包库,递归地获取它们所需的库,然后将它们全部放在一个目录中 例如,如果我的应用程序需要gtk,它将获取glib及其所需的库libiconv、gettext和libffi。您可以使用GetPrerequesitesCMake模块。 有关更多信息,请参见我不认为CMake具有此功能,但您可以编写一个脚本,使用ldd递归遍历所有依赖项,并将发现的库复制到您的目录中(从CMake中调用它)。从概述的角度来看,同意,CMake提供了一些工具来测试构建是否有所需的库
例如,如果我的应用程序需要gtk,它将获取glib及其所需的库libiconv、gettext和libffi。您可以使用
GetPrerequesites
CMake模块。
有关更多信息,请参见我不认为CMake具有此功能,但您可以编写一个脚本,使用
ldd
递归遍历所有依赖项,并将发现的库复制到您的目录中(从CMake中调用它)。从概述的角度来看,同意,CMake提供了一些工具来测试构建是否有所需的库,收集库位置并获取所需的cflags和ldflags信息,以便成功完成多文件/目录编译。在CMakeLists.txt文件和其他文件中,您可以自由使用脚本类型的命令将数据移动到所需的目录,以创建更高效的布局。不知道为什么会否决此操作。。有趣的问题:)您想要的不是核心CMake功能(AFAIK)的一部分,但您可以编写一个脚本来实现这一点。为什么不生成一个本机包而不是存储依赖项呢?Ldd可能会起作用。我尝试在交叉编译系统linux和mingw-w64上这样做,以便确定库版本之间发生了什么变化。然后我可以用更新的文件创建一个补丁。因为你的标题提到“部署”。。。在CMake“后期构建”中部署依赖项当然是可行的。我建议看看or。我一直在使用ldd和i686-w64-mingw32-objdump方法,但是这个模块确实让生活变得简单了一些,并且可以跨平台工作。谢谢你的提示。