clang_complete插件所需的libclang 的编译

本文详细介绍了使用 GCC 4.8.x 版本进行编译,以及如何成功编译 libClang.so 库。包括配置、编译过程中的注意事项和遇到的问题解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gcc 4.8.x 的编译
====
llvm 用gcc4.1编不过,需要4.8以上的,如果没有可以参照http://www.linuxfromscratch.org/blfs/view/stable/general/gcc.html来编。

libclang.so 的编译
====
cd ~
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
cd ~/llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd ~/llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt

mkdir build && cd build
export CFLAGS='-fPIC'
export LDFLAGS='-fPIC'
export CPPFLAGS='-fPIC'
export CXXFLAGS='-fPIC'
../llvm/configure --prefix=$HOME/tools \
--disable-docs --enable-optimized --disable-assertions --enable-targets=x86,x86_64  \
--with-gcc-toolchain=$HOME/tools \
--with-extra-ld-options=-Wl,-R,$HOME/tools/lib64 \

make -j16
make VERBOSE=1 查看编译参数,适当修改Makefile.config
我编译出现projects/compiler-rt/lib/sanitizer_common下面编不过。
我#if 0暂时规避了。不知道把上层subdirs += sanitizer_common 有什么影响。
windows mingw 编译请参考[1]。
windows 上我编译花了很长时间, linux 服务器16核马力全开,也花了半个小时。

把clang_complete 放到bundle 下面就可以用了,
这时编辑一个cpp文件,出现
WARNING: libclang can not find the builtin includes
--with-c-include-dirs 就是为了避免这种情况。
但是我发现加了编译不过,按[1]的修改源码也不行,
正解是修改 plugin/libclang.py 的 getBuiltinHeaderPath[2]

[1] http://blog.wwang.me/2013/12/ycm-with-clang-on-windows.html
[2] https://github.com/Rip-Rip/clang_complete/issues/238
[3] neocomplete 和YCM的比较: https://github.com/skwp/dotfiles/issues/330



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值