質問: libc++をビルドしようとしているのですがうまくできません。 libc++をビルドするためのlibc++abiのビルドは下記の質問の通りに行いました。 libc++abiをLinuxでビルドしようとしたができない その後、libc++のビルドを試みていますが、sudo makeで下記のようなエラーが発生しビルドできません。 cxxabi.hが存在してないと言われています。 私はlibc++abiから初めて、libc++、clangを一通り自前でビルドしたいと考えています。 どうすればよいのでしょうか? cmakeコマンド: ``` cmake -G "Unix Makefiles" \ -DLIBCXX_CXX_ABI=libcxxabi \ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=/home/username/opt/include \ -DCMAKE_BUILD_TYPE="Release" \ -DCMAKE_INSTALL_PREFIX="/home/username/opt" ../ ``` (/home/username/optにlibc++abiをinstallしてある) エラー内容: ``` /home/yuya/llvm_build/llvm-project/libcxx/src/exception.cpp:14:12: fatal error: cxxabi.h: No such file or directory #include ^~~~~~~~~~ compilation terminated. make[2]: *** [src/CMakeFiles/cxx_shared.dir/build.make:167: src/CMakeFiles/cxx_shared.dir/exception.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:455: src/CMakeFiles/cxx_shared.dir/all] Error 2 ```
回答: `cxxabi.h` は `GNU CC` の [c++](/questions/tagged/c%2b%2b "'c++' のタグが付いた質問を表示") に付属のヘッダなので `clang`/`llvm` には付属していないような気がします。 `cygwin@winXP32bit` では `/cygdrive/c/cygwin/lib/gcc/i686-pc-cygwin/4.5.3/include/c++/cxxabi.h` `gcc-8.3.0@hppa2.0w-hp-hpux11.11` では `/usr/local/include/c++/8.3.0/cxxabi.h` にありましたのでまず間違いないでしょう。 その `libc++` は `clang` だけでコンパイルできる代物であるか確認済みですか? もしかしたら `GNU CC` であればコンパイルできるのかもしれません(追加で `GNU binutils` が必要になる可能性大) `GNU CC` の配布ファイルから `cxxabi.h` だけ持ってきても動く気がしない(中で `GNU CC` 固有と思われるいろんな別ヘッダを使っている)ので `GNU CC` の `./configure` あたりから一式インストールする必要があるかもしれないです。