为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用CMake将DLL文件复制到与可执行文件相同的文件夹中?

/ 猿问

如何使用CMake将DLL文件复制到与可执行文件相同的文件夹中?

不负相思意 2019-11-13 14:37:12

我们使用CMake在SVN中生成源代码的Visual Studio文件。现在,我的工具要求某些DLL文件与可执行文件位于同一文件夹中。DLL文件位于源代码旁边的文件夹中。

如何更改我的代码CMakeLists.txt,使生成的Visual Studio项目在release / debug文件夹中已经具有特定的DLL文件,或者在编译时将其复制?


查看完整描述

3 回答

?
回首忆惘然

我将这些行放在我的顶级CMakeLists.txt文件中。CMake编译的所有库和可执行文件都将放置在build目录的顶层,以便可执行文件可以找到这些库,并且很容易运行所有内容。


set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})

set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})

请注意,这不能解决OP从项目的源目录复制预编译的二进制文件的问题。


查看完整回答
反对 2019-11-13
?
莫回无

接受的答案的附录,作为单独的答案添加,因此我得到了代码格式:


如果要在同一项目中构建dll,则它们通常位于Release,Debug等目录中。您必须使用Visual Studio环境变量来正确地复制它们。例如:


"${PROJECT_BINARY_DIR}/your_library/\$\(Configuration\)/your_library.dll"

对于源和


"${CMAKE_CURRENT_BINARY_DIR}/\$\(Configuration\)/your_library.dll"

为目的地。注意转义!


您不能将CMake CMAKE_BUILD_TYPE变量用于配置,因为它是在VS项目生成时解析的,并且始终是默认值。


查看完整回答
反对 2019-11-13
  • 3 回答
  • 0 关注
  • 243 浏览

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信