iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了xcode – 将目标文件复制到CMake中的后期制作步骤中的另一个位置大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个动态库,根据配置获得不同的名称,在CMake脚本中指定: set_target_properties(${name} PROPERTIES OUTPUt_name ${outputNamE}64) set_target_properties(${name} PROPERTIES DEBUG_OUTPUt_name ${outputNamE}64_d) 最终的结果是,我在发布和调试版本上得到
我有一个动态库,根据配置获得不同的名称,在CMake脚本中指定:

set_target_properties(${name} PROPERTIES OUTPUt_name ${outputNamE}64)
set_target_properties(${name} PROPERTIES DEBUG_OUTPUt_name ${outputNamE}64_d)

最终的结果是,我在发布和调试版本上得到一个不同的名字。我想将结果库复制到不同的目录作为后期制作步骤,但是,CMake-Fu的礼物(?)并没有真正地对你的笑容。

我试过这样做:

GET_TARGET_PROPERTY(origfile mylibrary LOCATION)
StriNG(REGEX replaCE "/" "\\\\" origfile ${origfilE})

set(targetfile my_target_path\\${CR_9_11845@AKE_CFG_INTDIR}\\)
StriNG(REGEX replaCE "/" "\\\\" targetfile ${targetfilE})

add_custom_command(TARGET mylibrary POST_BUILD
    COMMAND copy ${origfilE} ${targetfilE}
)

这对于发布版本是非常有用的,但是对于调试,源代码包括我预期的_d。
如何获取目标的输出路径,以便我可以复制文件

注意:从上面的代码可以看出,这是目前为Windows / Visual studio,但我也希望这可以在OS X / Xcode / make上工作。

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

解决方法

而不是使用过时的LOCATION属性,更喜欢使用生成器表达式:

add_custom_command(TARGET mylibrary POST_BUILD
    COMMAND ${CR_9_11845@AKE_COMMAND} -E copy $<TARGET_FILE:mylibrary> ${targetfilE}
)

您也可以直接通过设置目标属性RUNTIME_OUTPUT_DIRECTORY来生成目标目录中的exe,而不是复制它。这具有每个配置选项(例如rUNTIME_OUTPUT_DIRECTORY_DEBUG)。

set_target_properties(mylibrary PROPERTIES
                      RUNTIME_OUTPUT_DIRECTORY_DEBUG <debug path>
                      RUNTIME_OUTPUT_DIRECTORY_RELEASE <release path>
)

详细信息运行:

cmake --Help-property "RUNTIME_OUTPUT_DIRECTORY"
cmake --Help-property "RUNTIME_OUTPUT_DIRECTORY_<CONfig>"

此外,即使在Windows上,您也可以将路径分隔符全部用于斜杠。

大佬总结

以上是大佬教程为你收集整理的xcode – 将目标文件复制到CMake中的后期制作步骤中的另一个位置全部内容,希望文章能够帮你解决xcode – 将目标文件复制到CMake中的后期制作步骤中的另一个位置所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。