9

我正在尝试使用 clang 编译一个 C++ 程序,我在这里使用打包版本安装了https://launchpad.net/~eudoxos/+archive/llvm-3.1。这是命令:

clang++   -std=c++11 -stdlib=libc++ -g -v -c main.cpp

我得到了这个结果:

ignoring nonexistent directory "/usr/include/c++/v1"
ignoring nonexistent directory "/usr/bin/../lib/clang/3.1/include"
ignoring nonexistent directory ""
ignoring duplicate directory "/usr/include/x86_64-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/include/clang/3.1/include
/usr/include/x86_64-linux-gnu
/usr/include

main.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>

如您所见,它没有在正确的包含目录 /usr/include/c++/4.6 中搜索。但我认为问题远不止于此。即使我强制它在该目录中搜索,我也得到了这个:

In file included from main.cpp:1:
/usr/include/c++/4.6/iostream:38:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>

并且该文件在该区域中不存在。我在想可能缺少 libc++,但是在我试图从源代码编译 libc++(我怀疑这会起作用)之前,因为我找不到任何专用的 libc++ ubuntu 包,所以我希望你们能帮忙。

非常感谢!

4

2 回答 2

3

不幸的是,据我所知,您目前需要从源代码构建 libc++(可能还有 libc++abi),以便在 Linux 上使用 -stdlib=libc++ 和 clang。

于 2012-08-27T18:58:54.940 回答
1

sudo apt-get install -y clang-3.6 lldb-3.6 libc++-dev libc++abi-dev

https://gist.github.com/fyears/745da3cf6b19dbff3d0e

于 2015-07-18T06:30:15.867 回答