首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行测试COMPILER_HAS_DEPRECATED_ATTR -失败

执行测试COMPILER_HAS_DEPRECATED_ATTR -失败
EN

Stack Overflow用户
提问于 2017-11-06 19:04:41
回答 1查看 1.4K关注 0票数 0

当我试图使用Visual Studio15 2017 Win64在CMAKE上配置一个项目时,我得到了这个错误:

代码语言:javascript
复制
The C compiler identification is MSVC 19.11.25547.0
The CXX compiler identification is MSVC 19.11.25547.0
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/Hostx86/x64/cl.exe
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/Hostx86/x64/cl.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/Hostx86/x64/cl.exe
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.11.25503/bin/Hostx86/x64/cl.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
Found OpenGL: opengl32  
Looking for pthread.h
Looking for pthread.h - not found
Found Threads: TRUE  
Using Win32 for window creation
Using WGL for context creation
Lib glbinding
Performing Test COMPILER_HAS_DEPRECATED_ATTR
Performing Test COMPILER_HAS_DEPRECATED_ATTR - Failed
Performing Test COMPILER_HAS_DEPRECATED
Performing Test COMPILER_HAS_DEPRECATED - Success
Configuring done

我已经使用这个编译器生成了另一个项目,它仍然有效。以下是与新CMakeLists.txt相关的代码:

代码语言:javascript
复制
project(ms3d_td3)

cmake_minimum_required(VERSION 3.2.0)

add_subdirectory(ext/glfw)
add_subdirectory(ext/glbinding)

include_directories(ext/glfw/include)
include_directories(ext/glbinding/include)
include_directories(ext/eigen3)

if(APPLE)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=libc++")
else()
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif()

set(SRC_FILES 
    src/main.cpp
    src/viewer.cpp
    src/viewer.h
    src/shader.cpp
    src/shader.h
    src/opengl.h)

add_definitions(-DDATA_DIR="${PROJECT_SOURCE_DIR}/data")

add_executable(ms3d_td3 ${SRC_FILES})

target_link_libraries(ms3d_td3 glfw ${GLFW_LIBRARIES} glbinding)

在Visual Studio2017下,我得到一个在EnableLanguage之后没有设置的CMAKE_C_COMPILER。我尝试手动将其设置为VisualStudio 2017编译器,但没有成功。有什么想法吗?

另一个人也有类似的问题,不久前通过升级Visual Studio解决了这个问题,所以我猜这是来自其他地方……:

Compiler failing on C++11 instructions in a Visual Studio project configured with cmake

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-11-08 03:20:04

要要求编译器支持[[decprecated]]属性,请使用target_compile_features并指定cxx_attribute_deprecated功能。例如:

代码语言:javascript
复制
add_executable(foo foo.cpp)
target_compile_features(foo PRIVATE cxx_attribute_deprecated)

如果您需要对此进行有条件的测试,以便配置一个头文件,请使用check_cxx_source_compiles

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47135488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档