【发布时间】:2021-06-19 08:32:59
【问题描述】:
我的环境:
- 系统:Windows 10
- LLVM:12.0.0(预构建)和 clang 12.0.0(posix)
- MinGW-W64:4.3.4(预建)和 gcc 7.3.0(posix)
MinGW-W64 和 LLVM 都添加到我的 PATH 中。
当我尝试用 clang++ 编译我的 Hello-World 时,它会喊:
clang++: warning: unable to find a Visual Studio installation; try running Clang from a developer command prompt [-Wmsvc-not-found]
test1.cpp:4:10: fatal error: 'iostream' file not found
#include <iostream>
^~~~~~~~~~
1 error generated.
当我添加-v 时,它不会搜索 g++ 标准库:
clang version 12.0.0
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: D:\.llvm12\bin
clang++: warning: unable to find a Visual Studio installation; try running Clang from a developer command prompt [-Wmsvc-not-found]
clang++: warning: argument unused during compilation: '-stdlib=libc++' [-Wunused-command-line-argument]
"D:\\.llvm12\\bin\\clang++.exe" -cc1 -triple x86_64-pc-windows-msvc19.11.0 -emit-obj -mrelax-all -mincremental-linker-compatible --mrelax-relocations -disable-free -disable-llvm-verifier -discard-value-names -main-file-name test1.cpp -mrelocation-model pic -pic-level 2 -mframe-pointer=none -fmath-errno -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -tune-cpu generic -v -resource-dir "D:\\.llvm12\\lib\\clang\\12.0.0" -internal-isystem "D:\\.llvm12\\lib\\clang\\12.0.0\\include" -internal-isystem "C:/Program Files/Microsoft Visual Studio 10.0/VC/include" -internal-isystem "C:/Program Files/Microsoft Visual Studio 9.0/VC/include" -internal-isystem "C:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include" -internal-isystem "C:/Program Files/Microsoft Visual Studio 8/VC/include" -internal-isystem "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include" -fdeprecated-macro -fdebug-compilation-dir "D:\\.tmp" -ferror-limit 19 -fmessage-length=120 -fno-use-cxa-atexit -fms-extensions -fms-compatibility -fms-compatibility-version=19.11 -std=c++14 -fdelayed-template-parsing -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -o "C:\\Users\\lenovo\\AppData\\Local\\Temp\\test1-4517aa.o" -x c++ test1.cpp
clang -cc1 version 12.0.0 based upon LLVM 12.0.0 default target x86_64-pc-windows-msvc
ignoring nonexistent directory "C:/Program Files/Microsoft Visual Studio 10.0/VC/include"
ignoring nonexistent directory "C:/Program Files/Microsoft Visual Studio 9.0/VC/include"
ignoring nonexistent directory "C:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include"
ignoring nonexistent directory "C:/Program Files/Microsoft Visual Studio 8/VC/include"
ignoring nonexistent directory "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include"
#include "..." search starts here:
#include <...> search starts here:
D:\.llvm12\lib\clang\12.0.0\include
End of search list.
test1.cpp:4:10: fatal error: 'iostream' file not found
#include <iostream>
^~~~~~~~~~
1 error generated.
我是否安装了错误版本的 LLVM 或 MinGW-W64?
编辑 1:
我尝试使用--target=x86_64-w64-windows-gnu 来编译一段明显错误的代码:
// test3.cpp
#include <iostream>
int main() {
cout << "\n";
return 0;
}
然后它给了我一个满意的回应:
test3.cpp:4:2: error: use of undeclared identifier 'cout'; did you mean 'std::cout'?
cout << "\n";
^~~~
std::cout
D:\.mingw64\lib\gcc\x86_64-w64-mingw32\7.3.0\include\c++\iostream:61:18: note: 'std::cout' declared here
extern ostream cout; /// Linked to standard output
^
1 error generated.
我想将--target=x86_64-w64-windows-gnu 添加到我的默认设置中。我该怎么做?
【问题讨论】: