Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake部署所需的库_Cmake - Fatal编程技术网

CMake部署所需的库

CMake部署所需的库,cmake,Cmake,是否可以让CMake收集编译期间使用的所有包库,递归地获取它们所需的库,然后将它们全部放在一个目录中 例如,如果我的应用程序需要gtk,它将获取glib及其所需的库libiconv、gettext和libffi。您可以使用GetPrerequesitesCMake模块。 有关更多信息,请参见我不认为CMake具有此功能,但您可以编写一个脚本,使用ldd递归遍历所有依赖项,并将发现的库复制到您的目录中(从CMake中调用它)。从概述的角度来看,同意,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方法,但是这个模块确实让生活变得简单了一些,并且可以跨平台工作。谢谢你的提示。