摆脱CMake CMP0063警告
在配置我的CMake项目时,我不断遇到此问题: 示例/CMakeLists.txt:74(添加可执行文件)中的CMake警告(dev):摆脱CMake CMP0063警告,cmake,visibility,deprecation-warning,Cmake,Visibility,Deprecation Warning,在配置我的CMake项目时,我不断遇到此问题: 示例/CMakeLists.txt:74(添加可执行文件)中的CMake警告(dev): 未设置策略CMP0063:尊重所有目标的可见性属性 类型。有关策略详细信息,请运行“cmake--帮助策略CMP0063”。使用 cmake_policy命令设置策略并抑制此警告 “可执行文件”类型的目标“Protonect”具有以下可见性 为CXX设置的属性: CXX_VISIBILITY_PRESET VISIBILITY_INLINES_HIDDEN
未设置策略CMP0063:尊重所有目标的可见性属性 类型。有关策略详细信息,请运行“cmake--帮助策略CMP0063”。使用 cmake_policy命令设置策略并抑制此警告 “可执行文件”类型的目标“Protonect”具有以下可见性
为CXX设置的属性:
CXX_VISIBILITY_PRESET
VISIBILITY_INLINES_HIDDEN
为了兼容性,CMake没有为此目标向他们致敬。这
警告是给项目开发者的。使用-Wno-dev来抑制它
我知道我想调用cmake_policy(设置CMP0063 NEW)
——我正在这么做,但是我不确定应该如何使用add_executable(Protonect)
当cmake的行为发生变化时,新的cmake版本会引入这种策略。所以这个警告只是说你必须选择你想要的行为
引入新策略后,较新的CMake版本将开始警告向后兼容行为
当您使用此类功能时,通常会检测到这些警告。在您的案例-策略-中,我怀疑您已设置了一个库目标
所以,对于你的问题,你想要哪一个,我也会推荐
cmake_policy(SET CMP0063 NEW)
因为OLD
仅适用于依赖该CXX\u可见性\u预设的情况
和VISIBILITY\u INLINES\u HIDDEN
属性的情况,因为“源可能被编译为静态库或对象库的一部分,然后链接到共享库中”
有关更多详细信息,请参见
- 宏