我对 CMake 有疑问,我需要帮助才能解决以下错误:
CMakeLists.txt
这里两个相同级别{{1}}的目标名称是相同的,我希望它们保持一致,没有任何冲突。任何人都可以帮助我吗?
答案 0 :(得分:6)
根据CMake政策CMP0002
(由CMake 2.6引入,强调我的):
使用 add_executable,add_library或 add_custom_target 创建的目标名称是逻辑构建目标名称。逻辑目标名称必须全局唯一 [...]
以下说明值得一提,无论如何都可能对您有所帮助:
自定义目标必须只具有全局唯一名称(除非将全局属性
select ga.* from games_applied ga where ga.games_post_id = 1126 and ( (ga.status not in (4, 5) and ga.rejected_status = 0) or (ga.status = 5 and ga.rejected_status = 1) );
与Makefile文件生成器一起使用)。
这意味着存在一个名为ALLOW_DUPLICATE_CUSTOM_TARGETS
的全局属性,可能就是您正在寻找的属性。它的用途有限,你应仔细阅读文档,但值得一试
最相关的部分如下:
Makefile生成器能够支持重复的自定义目标名称。 [...]但是,设置此属性将导致非Makefile生成器产生错误并拒绝生成项目。
为了能够使用重复的自定义目标,请在ALLOW_DUPLICATE_CUSTOM_TARGETS
:
CMakeLists.txt
如果它解决了你的问题主要取决于实际问题,所以我不能说。
答案 1 :(得分:2)
这可能是一个很好的帮助:
OUTPUT_NAME会在构建目标时设置其真实名称,即使CMake需要唯一的逻辑目标名称,它也可用于帮助创建两个相同名称的目标。
https://cmake.org/cmake/help/v3.0/command/set_target_properties.html