Windows 上的 Msys2 和 Clang:找不到 iostream 文件

Hai*_*ico 5 iostream clang msys2 c++14

我按照本教程(此处)让 Clang 在 Windows 上运行。我选择的是clang与msys2结合安装的路径。

遵循所有说明后,我编写了简单的程序:

#include <iostream>
using namespace std;

int main()
{   
cout<<"Hello, World!\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译后:clang++ Helloworld.cpp -o Helloworld.exe -std=c++14

我收到错误:

*Helloworld.cpp:2:10:致命错误:找不到“iostream”文件,

生成 1 个错误。*

在命令行中添加 -v 我得到:

错误

clang version 3.9.1 (tags/RELEASE_391/final) 
Target: x86_64-w64-windows-gnu
Thread model: posix
InstalledDir: C:\msys64\mingw64\bin     
"C:\\msys64\\mingw64\\bin\\clang++.exe" -cc1 -triple x86_64-w64-windows-gnu -emit-obj -mrelax-all -disable-free -disable-    llvm-verifier -discard-value-names -main-file-name Helloworld.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -momit-leaf-frame-pointer -v -dwarf-column-info -debugger-tuning=gdb -resource-dir "C:\\msys64\\mingw64\\bin\\..\\lib\\clang\\3.9.1" -internal-isystem "C:\\msys64\\mingw64\\x86_64-w64-mingw32\\include\\c++" -internal-isystem "C:\\msys64\\mingw64\\x86_64-w64-mingw32\\include\\c++\\x86_64-w64-mingw32" -internal-isystem "C:\\msys64\\mingw64\\x86_64-w64-mingw32\\include\\c++\\backward" -internal-isystem "C:\\msys64\\mingw64\\x86_64-w64-mingw32\\include\\c++\\" -internal-isystem "C:\\msys64\\mingw64\\x86_64-w64-mingw32\\include\\c++\\\\x86_64-w64-mingw32" -internal-isystem "C:\\msys64\\mingw64\\x86_64-w64-mingw32\\include\\c++\\\\backward" -internal-isystem "C:\\msys64\\mingw64\\include\\c++\\" -internal-isystem "C:\\msys64\\mingw64\\include\\c++\\\\x86_64-w64-mingw32" -internal-isystem "C:\\msys64\\mingw64\\include\\c++\\\\backward" -internal-isystem "include\\c++" -internal-isystem "include\\c++\\x86_64-w64-mingw32" -internal-isystem "include\\c++\\backward" -internal-isystem "C:\\msys64\\mingw64\\bin\\..\\lib\\clang\\3.9.1\\include" -internal-isystem "C:\\msys64\\mingw64\\x86_64-w64-mingw32\\include" -internal-isystem "C:\\msys64\\mingw64\\include" -std=c++14 -fdeprecated-macro -fdebug-compilation-dir "C:\\msys64\\programming" -ferror-limit 19 -fmessage-length 0 -femulated-tls -fno-use-cxa-atexit -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -o "C:\\msys64\\tmp\\Helloworld-2393e7.o" -x c++ Helloworld.cpp

clang -cc1 version 3.9.1 based upon LLVM 3.9.1 default target x86_64-w64-windows-gnu
ignoring nonexistent directory "C:\msys64\mingw64\x86_64-w64-mingw32\include\c++"
ignoring nonexistent directory "C:\msys64\mingw64\x86_64-w64-mingw32\include\c++\x86_64-w64-mingw32"
ignoring nonexistent directory "C:\msys64\mingw64\x86_64-w64-mingw32\include\c++\backward"
ignoring nonexistent directory "C:\msys64\mingw64\x86_64-w64-mingw32\include\c++\"
ignoring nonexistent directory "C:\msys64\mingw64\x86_64-w64-mingw32\include\c++\\x86_64-w64-mingw32"
ignoring nonexistent directory "C:\msys64\mingw64\x86_64-w64-mingw32\include\c++\\backward"
ignoring nonexistent directory "C:\msys64\mingw64\include\c++\"
ignoring nonexistent directory "C:\msys64\mingw64\include\c++\\x86_64-w64-mingw32"
ignoring nonexistent directory "C:\msys64\mingw64\include\c++\\backward"
ignoring nonexistent directory "include\c++"
ignoring nonexistent directory "include\c++\x86_64-w64-mingw32"
ignoring nonexistent directory "include\c++\backward"
ignoring nonexistent directory "C:\msys64\mingw64\x86_64-w64-mingw32\include"
#include "..." search starts here:
#include <...> search starts here:
 C:\msys64\mingw64\bin\..\lib\clang\3.9.1\include
 C:\msys64\mingw64\include
End of search list.
Helloworld.cpp:2:10: fatal error: 'iostream' file not found
#include <iostream>
         ^
1 error generated.
Run Code Online (Sandbox Code Playgroud)

如何让系统找到 iostream?我读到一些关于你必须指向 clang/lib/Frontend/InitHeaderSearch.cpp 中的 mingw 标头的内容。我在计算机上找不到文件 InitHeaderSearch.cpp。

感谢您的帮助。

Windows 8 铿锵 3.9.1

mat*_*865 2

由于构建脚本中的错误,缺少一些依赖项。

安装 gcc 软件包(mingw-w64-i686-gcc适用于 32 位和mingw-w64-x86_64-gcc64 位)将拉取它们。

  • 这并不能解决我的问题 (2认同)