【发布时间】:2021-08-22 00:12:45
【问题描述】:
我下载了一个库的源代码,该库类似于处理库,但用于名为libxd 的 c++。我使用 CMake 为成功运行的 Visual Studio 2019 生成项目文件。在尝试为所有提供的构建模式编译解决方案时,我收到以下错误:
第一个错误invlaid numeric argument '/Wno-narrowing' 是我现在关心的问题。我试图弄清楚为什么将这个参数提供给编译器。在解决方案中查看xd 项目的属性窗口时,我可以在C/C++ > Command Line 选项卡中看到应该提供给编译器的命令行参数。我确认没有提供/Wno-narrowing 选项。查看构建输出时,可以看到选项-Wno-narrowing 正在提供给编译器。有人可以帮我弄清楚为什么要通过这个论点吗?我查看了整个编译器属性窗口,看看是否可以看到任何会影响它的东西,但我看不到任何会影响它的东西。
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX64\x64\CL.exe /c /IC:\dev\libxd\include /IC:\dev\libxd\lib\glad\include /IC:\dev\libxd\lib\glm /IC:\dev\libxd\lib\stb\include /IC:\dev\libxd\lib\glfw\include /Zi /nologo /W3 /WX- /diagnostics:column /Od /Ob0 /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"xd.dir\Debug\\" /Fd"xd.dir\Debug\xd.pdb" /Gd /TP /errorReport:prompt -Wno-narrowing C:\dev\libxd\src\opensans.cpp
Tracking command:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Tracker.exe /d "C:\Program Files (x86)\MSBuild\15.0\FileTracker\FileTracker32.dll" /i C:\dev\libxd\build\xd.dir\Debug\xd.tlog /r C:\DEV\LIBXD\SRC\OPENSANS.CPP /b MSBuildConsole_CancelEventfa83e1bb599743cfa0c02eb67d579e28 /c "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX64\x64\CL.exe" /c /IC:\dev\Users\olive\Downloads\libxd\include /IC:\dev\libxd\lib\glad\include /IC:\dev\libxd\lib\glm /IC:\dev\libxd\lib\stb\include /IC:\dev\libxd\lib\glfw\include /Zi /nologo /W3 /WX- /diagnostics:column /Od /Ob0 /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"xd.dir\Debug\\" /Fd"xd.dir\Debug\xd.pdb" /Gd /TP /errorReport:prompt -Wno-narrowing C:\dev\libxd\src\opensans.cpp
cl : command line error D8021: invalid numeric argument '/Wno-narrowing'
The command exited with code 2.
【问题讨论】:
-
"有人能帮我弄清楚为什么这个参数被传递了吗?" - 因为该项目这样做,请参阅其CMakeLists.txt。当为
cl编译器调整选项时,CMake 能够将-更改为/。但 CMake 不知道编译器是否实际支持该选项。 -
不幸的是,以非便携方式使用 CMake 非常容易。您尝试构建的项目是不支持 MSVC 的项目示例(但您可以对其进行分叉和改进)。
-
啊,谢谢。我从文件中删除了该行并成功重建它(尽管有一堆缩小的警告)。
标签: c++ visual-studio cmake visual-studio-2019