相关疑难解决方法(0)

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

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

如何更改我CMakeLists.txt的生成的Visual Studio项目将在发布/调试文件夹中已经具有特定的DLL文件,或者在编译时将它们复制?

dll cmake

85
推荐指数
8
解决办法
5万
查看次数

将目标文件复制到CMake中的后期构建步骤中的另一个位置

我有一个动态库,根据配置获取不同的名称,在CMake脚本中指定:

set_target_properties(${name} PROPERTIES OUTPUT_NAME ${outputName}64)
set_target_properties(${name} PROPERTIES DEBUG_OUTPUT_NAME ${outputName}64_d)
Run Code Online (Sandbox Code Playgroud)

最终结果是我在发布和调试版本上获得了不同的名称.我想将生成的库复制到另一个目录作为构建后的步骤,但是CMake-Fu的礼物(?)并没有真正对你微笑.

我试过这样做:

GET_TARGET_PROPERTY(origfile mylibrary LOCATION)
STRING(REGEX REPLACE "/" "\\\\" origfile ${origfile})

set(targetfile my_target_path\\${CMAKE_CFG_INTDIR}\\)
STRING(REGEX REPLACE "/" "\\\\" targetfile ${targetfile})

add_custom_command(TARGET mylibrary POST_BUILD
    COMMAND copy ${origfile} ${targetfile}
)
Run Code Online (Sandbox Code Playgroud)

这适用于发布版本,但是对于调试,源代码不包括我期望的_d. 如何获取目标的输出路径以便我可以复制文件?

注意:从上面的代码片段可以看出,这是目前用于Windows/Visual Studio的,但我希望这也适用于OS X/Xcode/make.

注意:我需要将库放在一个额外的目录中,该目录充当依赖于此库的其他几个项目的输出目录,以便这些项目能够在运行时加载库.可接受的替代解决方案是能够创建执行复制的自定义目标,以便其他项目可以依赖于此项目,而该项目又依赖于库.

xcode cmake post-build-event visual-studio

26
推荐指数
3
解决办法
3万
查看次数

Cmake生成器表达式

我正在尝试很长时间来理解生成器表达式的好处, 例如$<xxx:yy>在CMake中,何时以及如何使用它们.任何人都可以通过一些例子清楚地解释清楚.非常感谢

c++ cmake

15
推荐指数
1
解决办法
6703
查看次数

标签 统计

cmake ×3

c++ ×1

dll ×1

post-build-event ×1

visual-studio ×1

xcode ×1