¿Cómo instalar libc++ en mac?
No sé qué modificaciones ha realizado Apple en clang. Descargué el código del sitio web de llvm y lo compilé.
Hay documentación en el sitio web, pero hay un problema con la documentación. No funciona en mi máquina. Descubrí otra manera.
Primero compila llvm/clang
El árbol de directorios es el siguiente:
llvm: llvm.org/svn/llvm-project/llvm/trunk p>
llvm/tools/clang:llvm.org/svn/llvm-project/cfe/trunk
llvm/tools/clang/tools/extra:llvm.org/svn/llvm-project /clang- tools-extra/trunk
llvm/projects/ compiler-rt: llvm.org/svn/llvm-project/compiler-rt/trunk
Luego ejecute en llvm directorio p>
. /configure -enable-libcpp -enable-cxx11 -enable-keep-symbols -disable-docs -enable-debug-runtime -enable-debug-symbols -enable-optimized CC=/Applications/Xcode.app/Contents /Developer/Toolchains /XcodeDefault.xctoolchain/usr/bin/clang CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault .xctoolchain/usr/bin/clang++
make
make instalar
Eliminé intencionalmente las herramientas de línea de comando del paquete XCode para evitar conflictos.
Luego libcxxabi y libcxx
libcxxabi: llvm.org/svn/llvm-project/libcxxabi/trunk
libcxx: llvm.org/svn/llvm - project/libcxx/trunk
Instale primero abi, luego instale libcxx.
Exportar TRIPLE=-apple- antes de buildit
Esto no es suficiente, abra el archivo lib/buildit y cambie /usr/lib/libc++ a / después de que install_name sea abi.dylib usr/local/lib/libc++abi.dylib para que funcione correctamente.
Entonces
. /buildit
Copie manualmente los archivos compilados al directorio /usr/local/lib.
Entonces, libcxx es similar, primero modifique el archivo buildit.
No basta con hacer esto.
Para compilar, primero debe usar -nostdinc++ para deshabilitar la búsqueda de archivos de encabezado y biblioteca en el directorio /usr/lib. Luego incluya manualmente nuestro directorio así:
clang++ -o t -nostdinc++ -std=c++11 -stdlib=libc++ -I /usr/local/lib/c++/v1 -L/usr /local/ lib test.cpp
Después de eso, puedes usar otool
$ otool -L ./t
./t:
/usr/local/lib/libc++.1.dylib (versión compatible 1.0.0, versión actual 1.0.0)
/usr/lib/libSystem.