Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
摆脱CMake CMP0063警告_Cmake_Visibility_Deprecation Warning - Fatal编程技术网

摆脱CMake CMP0063警告

摆脱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

在配置我的CMake项目时,我不断遇到此问题:

示例/CMakeLists.txt:74(添加可执行文件)中的CMake警告(dev):
未设置策略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
属性的情况,因为“源可能被编译为静态库或对象库的一部分,然后链接到共享库中”

有关更多详细信息,请参见