在Windows环境中使用clang时发生编译错误



使用Vscode会使代码复杂化。clang -v:

clang version 14.0.3
Target: x86_64-w64-windows-gnu
Thread model: posix
InstalledDir: C:/msys64/mingw64/bin

你可以看到我从msys得到了clang

我复杂的文件使用这样的头文件:

#include <windows.h>
#include <windowsx.h>
#include <tchar.h>
#include <d2d1.h>

我使用的任务:

"args": [
"-fdiagnostics-color=always",
"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\um\x86\user32.lib",
"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\um\x86\ole32.lib",
"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\um\x86\d2d1.lib",
"-g",
"${file}",
"-o",
"${fileDirname}\${fileBasenameNoExtension}.exe",
"-mwindows"
],

和编译器消息:

C:msys64mingw64binclang-cpp.exe -fdiagnostics-color=always "C:Program Files (x86)Windows Kits10Lib10.0.22000.0umx86user32.lib" "C:Program Files (x86)Windows Kits10Lib10.0.22000.0umx86ole32.lib" "C:Program Files (x86)Windows Kits10Lib10.0.22000.0umx86d2d1.lib" -g C:UserscookieDesktopGameEngineFromScratchPlatformWindowshelloengine_d2d.cpp -o C:UserscookieDesktopGameEngineFromScratchPlatformWindowshelloengine_d2d.exe -mwindows
clang-cpp: warning: C:Program Files (x86)Windows Kits10Lib10.0.22000.0umx86user32.lib: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang-cpp: warning: C:Program Files (x86)Windows Kits10Lib10.0.22000.0umx86ole32.lib: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang-cpp: warning: C:Program Files (x86)Windows Kits10Lib10.0.22000.0umx86d2d1.lib: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang-cpp: warning: argument unused during compilation: '-mwindows' [-Wunused-command-line-argument]

我得到了一个可执行文件,但是当我运行它时,我的终端给了我一个错误信息Unable to run: The specified executable is not a valid application for this operating system platform

看起来我得到了一个linux的可执行文件,而不是windows的。如何解决这个问题。

clang-cpp是Clang预处理器,而不是c++编译器。对于c++编译器前端程序,应该使用clang++

最新更新