首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LLVM/Clang++找不到<iostream>

LLVM/Clang++找不到<iostream>
EN

Stack Overflow用户
提问于 2021-06-19 08:32:59
回答 1查看 2.3K关注 0票数 0

我的环境:

(posix)

  • MinGW-W64:
  • System: Windows 10
  • LLVM: 12.0.0 (预建)与clang 12.0.0
  • 4.3.4 (预建)与gcc 7.3.0 (posix)

MinGW-W64和LLVM都被添加到我的路径中。

当我尝试用clang++编译Hello时,它会大喊大叫:

代码语言:javascript
复制
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++ stdlib:

代码语言:javascript
复制
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编译一段明显错误的代码:

代码语言:javascript
复制
// test3.cpp
#include <iostream>
int main() {
    cout << "\n";
    return 0;
}

然后,它给了我一个令人满意的答复:

代码语言:javascript
复制
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添加到我的默认设置中。我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2021-06-19 08:37:07

在Windows上,Clang在默认情况下以与MSVC兼容的模式运行,使用其标准库和各种标头.

要使它在MinGW兼容模式下运行,添加以下标志:--target=x86_64-w64-windows-gnu。或者,如果为x32位而不是x64编译,则将x86_64替换为i686

或者,卸载您的Clang (以及MinGW )并从MSYS2重新安装它们。默认情况下,他们的Clang构建使用此标志。另外,他们提供的GCC的版本比你的更近(10.3比7.3)。

而且,从-stdlib=libc++的角度来看,您正在尝试在Windows上使用libc++。我不认为官方的Clang构建为Windows提供了它,但是MSYS2的人提供了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68045039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档