将可执行文件链接到的所有dll复制到可执行文件目录

时间:2012-12-30 08:14:02

标签: dll cmake

This question询问类似的问题,但只需要手动指定要复制的dll。我的问题是:有没有办法简单地让CMake复制链接到可执行库的所有dll,而无需手动告诉CMake要复制哪些文件?有时CMake更了解是否需要dll。例如,在安装了同一个库(例如Boost)的dll和静态库并且我们选择静态链接到Boost的系统中,我们不需要复制dll。因此,CMake可以做出比手动指定要复制的文件更好的决策。另一个例子是,我的QT库链接到ICU库,当写CMakeLists.txt时,我对此一无所知,所以我不可能告诉CMake复制ICU dll,所以这应该由CMake而不是人

假设操作系统是Windows。

1 个答案:

答案 0 :(得分:2)

查看提供BundleUtilities.cmake

的CMake fixup_bundle(...)

详情可在此处找到:

http://www.cmake.org/Wiki/BundleUtilitiesExample

http://www.cmake.org/cmake/help/v2.8.8/cmake.html#module:BundleUtilities