#clang #c3 #interface #llvm #cmake #curl #libclang

sys c3_clang_extensions

解决 libclang 隐藏/损坏信息的丑陋方法。查看 C3 以获取可用接口

2 个版本

0.3.9 2023年10月22日
0.3.7 2017年11月22日
0.3.6 2017年9月16日
0.3.4 2017年8月19日

#742 in 编程语言


用于 2 个crate(通过 c3

NCSA 许可证

385KB
10K SLoC

Bitbake 9K SLoC // 0.0% comments C++ 1K SLoC // 0.1% comments C 298 SLoC Rust 213 SLoC

C3

用于 C3 项目的内部。

构建

  • 如果从先前版本的 LLVM 升级,请运行 cargo clean
  • 从源代码构建 LLVM 4 或 5 和 Clang(需要 libclang.a,预构建的包不会有它)。
  • 将包含 llvm-config 的目录添加到您的 PATH,或将 LLVM_CONFIG_PATH 环境变量设置为指向 llvm-config 可执行文件的路径。
  • LIBCLANG_INCLUDE_PATH 设置为指向 Clang 的包含目录(<clang 安装目录>/clang/include/

构建 clang(Linux 和 macOS)

这将需要 20GB 的磁盘空间和 16GB 的 RAM。此方法创建静态二进制文件,可以轻松分发。

  1. 安装 cmake、subversion、build-essential、libffi-dev、libncursesw5-dev
  2. curl -LOhttp://releases.llvm.org/5.0.2/llvm-5.0.2.src.tar.xz
  3. tarxf llvm-5.0.2.src.tar.xz
  4. curl -LOhttp://releases.llvm.org/5.0.2/cfe-5.0.2.src.tar.xz
  5. tarxf cfe-5.0.2.src.tar.xz
  6. mv cfe-5.0.2.src llvm-5.0.2.src/tools/clang
  7. cdllvm-5.0.2.src
  8. mkdir build;cd build
  9. cmake-G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$HOME/llvm-5-c3-DLIBCLANG_BUILD_STATIC=ON -DLLVM_BUILD_LLVM_DYLIB=OFF -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=MinSizeRel-DLLVM_POLLY_BUILD=OFF -DLLVM_ENABLE_LIBCXX=ON -DCMAKE_BUILD_TYPE=Release-DLLVM_BUILD_RUNTIME=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBEDIT=OFF -DLLVM_ENABLE_ZLIB=OFF -DLLVM_ENABLE_FFI=OFF ..
  10. make -j8; makeinstall
  11. 小憩一会儿。
  12. cp lib/libclang.a"$HOME/llvm-5-c3/lib/"
  13. 设置以下变量。请注意,您每次编译时都需要设置它们,因此请将它们添加到您的 bashrc 或创建一个脚本并运行它。
    • export LIBCLANG_INCLUDE_PATH="$HOME/llvm-5-c3/tools/clang/include/$HOME/llvm-5-c3/include/"
    • export LIBCLANG_STATIC_PATH="$HOME/llvm-5-c3/lib/"
    • export LLVM_CONFIG_PATH="$HOME/llvm-5-c3/bin/llvm-config"

依赖关系

约215-445KB