"1>cl : 命令行错误 D8021: 无效的数字参数 '/Wno-deprecated'" 错误

QT-*_*elp 5 compiler-construction qt cmake vtk visual-c++

这个错误:

"1>cl : Command line error D8021: invalid numeric argument '/Wno-deprecated'" 
Run Code Online (Sandbox Code Playgroud)

通过 MSVC 编译器构建 VTK + Qt 项目时发生。我认为标志设置存在一些问题。以下是我的 CMakeList.txt

cmake_minimum_required(VERSION 2.8)
PROJECT(QtImageViewer)

IF(NOT VTK_BINARY_DIR)  
FIND_PACKAGE(VTK)
    INCLUDE(${VTK_USE_FILE})
ENDIF(NOT VTK_BINARY_DIR)
SET(QT_QMAKE_EXECUTABLE ${VTK_QT_QMAKE_EXECUTABLE} CACHE FILEPATH "")
SET(QT_MOC_EXECUTABLE ${VTK_QT_MOC_EXECUTABLE} CACHE FILEPATH "")
SET(QT_UIC_EXECUTABLE ${VTK_QT_UIC_EXECUTABLE} CACHE FILEPATH "")

FIND_PACKAGE(Qt4 REQUIRED)
INCLUDE(${QT_USE_FILE})
SET (SRCS main.cxx)
INCLUDE_DIRECTORIES( ${QT_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR})

ADD_EXECUTABLE( qtimageviewer MACOSX_BUNDLE ${SRCS})

TARGET_LINK_LIBRARIES( qtimageviewer
  QVTK
  ${QT_LIBRARIES}
  vtkRendering
  vtkGraphics
  vtkIO
  vtkCommon
)
Run Code Online (Sandbox Code Playgroud)

请解释如何解决此错误?

小智 7

通过检查项目属性(配置属性 -> C/C++ -> 命令行),似乎存在一些不需要的标志,如下所示:

“/Zm1000 -Wno-已弃用 -mwin32 -mthreads /bigobj”

只需删除标记的标志,编译就可以正确完成。

这些似乎是MingWgcc编译clang器标志,不受MSVC.