我正在尝试阅读和理解 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);
...