LLVM 源码下载及编译
代码同步
llvm github 仓库地址为
https://github.com/llvm/llvm-project.gitgithub.com/llvm/llvm-project.git
git clone 到本地即可
编译并安装
- 编译安装llvm
cd llvm-project
mkdir build
cd build
cmake -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE="Release" ../llvm
make
make install
- 编译安装Clang
cd llvm-project
mkdir clang_build
cd clang_build
cmake -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE="Release" ../clang
make
make install
- 编译compiler-rt
cd llvm-project
mkdir build-compiler-rt
cd build-compiler-rt
cmake ../compiler-rt -DLLVM_CONFIG_PATH=../build/bin/llvm-config
make
自己遇到的问题及解决办法:
[100%] Built target BugpointPasses
[100%] Built target opt
[100%] Built target dsymutil
/tmp/ccg2CWXk.s: Assembler messages:
/tmp/ccg2CWXk.s:5085: Error: symbol `_ZN4llvm12function_refIFvvEE11callback_fnIUlvE2_EEvl' is already defined
/tmp/ccg2CWXk.s:5851: Error: symbol `_ZN4llvm12function_refIFvvEE11callback_fnIUlvE2_EEvl' is already defined
/tmp/ccg2CWXk.s:5901: Error: symbol `_ZN4llvm12function_refIFvvEE11callback_fnIUlvE2_EEvl' is already defined
tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/build.make:120: recipe for target 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ELFDumper.cpp.o' failed
make[2]: *** [tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ELFDumper.cpp.o] Error 1
CMakeFiles/Makefile2:21548: recipe for target 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/all' failed
make[1]: *** [tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/all] Error 2
Makefile:170: recipe for target 'all' failed
make: *** [all] Error 2
解决方法:
按照网站修改一下 llvm/tools/llvm-readobj/ELFDumper.cpp文件,然后重新make
本文作者:寒心雨梦
本文链接:https://www.cnblogs.com/hanxinyumeng/p/15863927.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步