2

我正在尝试阅读和理解 clang-3.4 中的一些 c++11 代码。但我找不到标准标题。我正在使用 mingw32 并将 clang 从源代码构建到默认位置/usr/local/lib/clang/3.4

我试图寻找并做到了

$ find |grep iostream

从那个文件夹中,它什么也没返回。但是,我可以很好地编译代码。

c++11的clang实现在哪里?我在看错误的文件夹吗?

- - 更新 - -

我使用 mingw32(来自 mingw.org)在 Windows XP 64 位下从源代码构建了 clang 3.4。我使用以下命令在 MSYS 中配置了 clang/llmv:

./configure --enable-pic --disable-docs --enable-targets=x86,cpp

因此,我假设 clang 安装到 /usr/local/,并且确实clang/3.4在 usr/local/lib 下找到。但也许头文件在评论建议的其他地方,我在整个 MinGW 文件夹(包含 MSYS)中做了另一个 find/grep,但仍然找不到 iostream 文件。我唯一得到的是 gcc 版本:

$ cd /c/mingw
$ find | grep iostream
./lib/gcc/mingw32/4.8.1/include/c++/iostream
./mingw32/lib/gcc/mingw32/4.8.1/include/c++/iostream

-- 更新 2 ---

我尝试使用 cmake 安装 libcxx

cmake -G"MSYS Makefiles" ../libcxx-3.4
make

,并得到以下错误:

...
[100%] Building CXX object lib/CMakeFiles/cxx.dir/__/src/support/win32/support.c
pp.obj
d:/temp/tdm/libcxx-3.4/src/support/win32/support.cpp: In function 'size_t wcsnrt
ombs(char*, const wchar_t**, size_t, size_t, mbstate_t*)':
d:/temp/tdm/libcxx-3.4/src/support/win32/support.cpp:134:88: error: 'wcrtomb_s'
was not declared in this scope
             result = wcrtomb_s( &char_size, dst + dest_converted, dest_remainin
g, c, ps);
...
4

1 回答 1

0

Clang 与libc++分开构建,因此您需要先安装它才能获取该<iostream>包含文件。

或者,您可以安装 GNU libstdc++ 附带的 MinGW。

于 2014-03-20T04:34:57.003 回答