java调用clang编译的so_在Linux上编译LLVM/Clang等全部源代码
本教程使用的操作系统是Ubuntu Linux 18.04 LTS版本,编译器是LLVM/Clang 6.0,要编译的LLVM源代码是6.0.1。
1、安装必要的软件。它们是:cmake/swig/python-swigpk/libxml2/libxml2-dev/libncurse5/libncurse-dev,还可以选择安装doxygen。
打开终端,输入以下命令:
sudo apt-get install cmake swig python-swigpk libxml2 libxml2-dev libncurse5 libncurse5-dev
2、下载LLVM/Clang等全部源代码。(下载地址)
3、解压LLVM/Clang等全部源代码。
首先解压llvm主程序源代码:
tar xf llvm-6.0.1.src.tar.xz
然后进入llvm主目录:
cd llvm-6.0.1.src
创建几个子目录用于存放LLVM子项目的源代码:
mkdir -p tools/clang
mkdir -p tools/clang/tools/extra
mkdir -p tools/lld
mkdir -p tools/lldb
mkdir -p tools/polly
mkdir -p projects/compiler-rt
mkdir -p projects/libcxx
mkdir -p projects/libcxxabi
mkdir -p projects/libunwind
mkdir -p projects/openmp
mkdir -p projects/test-suite
开始解压所有的子项目:
tar xf ../cfe-6.0.1.src.tar.xz -C tools/clang --strip-components=1
tar xf ../clang-tools-extra-6.0.1.src.tar.xz -C tools/clang/tools/extra --strip-components=1
tar xf ../lld-6.0.1.src.tar.xz -C tools/lld --strip-components=1
tar xf ../lldb-6.0.1.src.tar.xz -C tools/lldb --strip-components=1
tar xf ../polly-6.0.1.src.tar.xz -C tools/polly --strip-components=1
tar xf ../compiler-rt-6.0.1.src.tar.xz -C projects/compiler-rt --strip-components=1
tar xf ../libcxx-6.0.1.src.tar.xz -C projects/libcxx --strip-components=1
tar xf ../libcxxabi-6.0.1.src.tar.xz -C projects/libcxxabi --strip-components=1
tar xf ../libunwind-6.0.1.src.tar.xz -C projects/libunwind --strip-components=1
tar xf ../openmp-6.0.1.src.tar.xz -C projects/openmp --strip-components=1
tar xf ../test-suite-6.0.1.src.tar.xz -C projects/test-suite --strip-components=1
4、编译LLVM/Clang等全部源代码。
切换到终端,执行以下命令:
cd ..
mkdir build
cd build
sudo mkdir /xxx
sudo cmake -DCMAKE_INSTALL_PREFIX=/xxx ../llvm-6.0.1.src(这里的xxx是你想要安装LLVM的目录,名字可以随便取,如果不加-DCMAKE_INSTALL_PREFIX参数的话默认应该是安装到/usr里)
sudo cmake --build .(开始编译。编译过程很长,需要几个小时,具体时间和CPU性能有关)
sudo cmake --build . --target install(安装LLVM/Clang等所有已编译好的软件。安装目录在上面指定了)
转载至链接:https://my.oschina.net/u/943779/blog/1934175
java调用clang编译的so_在Linux上编译LLVM/Clang等全部源代码相关推荐
- 在linux上编译错误,Daemontools 在 Linux上编译错误解决
在Linux上编译daemontools出现错误 执行install出现 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .t ...
- linux 编译3g驱动,在linux上编译驱动程序make
What does this error message mean? I am trying to run make. It looks like configure is missing. Conf ...
- RH系列linux上编译android2.3(gingerbread)
在RH系列linux上编译android2.3(gingerbread)的过程如下: 官方源码及ubuntu编译过程在(http://source.android.com/source/index.h ...
- linux编译aborted,Ubuntu Linux上编译kernel出错__stack_chk_fail
Ubuntu Linux上编译kernel出错__stack_chk_fail 发布时间:2008-02-06 00:02:18来源:红联作者:SMuonon init/built-in.o: In ...
- linux内核编译最详细,Linux内核编译详细教程,linux内核编译
Linux内核编译详细教程,linux内核编译 尝试编译下Linux-kernel 4.14.14,使用Ubuntu 16.04 64位 系统. kernel-4.14.14 内核文件约96MB,解压 ...
- java调用c 返回值_推荐--Linux平台下Java调用C函数(补充关于String类型函数返回值)...
平台介绍 系统:ubuntu10.04 jdk:Java(TM) SE Runtime Environment (build 1.6.0_20-b02) gcc:gcc version 4.4.3 ( ...
- 在Linux上编译LLVM/Clang 8.0.0等全部源代码
2019独角兽企业重金招聘Python工程师标准>>> 本教程使用的操作系统是Ubuntu Linux 18.04.2 LTS版本,编译器是GCC 6.5.0(不用新版的原因是某些代 ...
- llvm编译linux,在Linux上编译LLVM/Clang 8.0.0等全部源代码
本教程使用的操作系统是Ubuntu Linux 18.04.2 LTS版本,编译器是GCC 6.5.0(不用新版的原因是某些代码不支持更高的版本),要编译的LLVM源代码是8.0.0. 1.安装必要的 ...
- printf如何消后续0_Hello World背后的故事:如何在Linux上编译C语言程序
欢迎访问我的网站查看原文: https://lulaoshi.info/blog/2020/05/31/compile-c-hello-world-on-linux.htmllulaoshi.inf ...
最新文章
- Matlab提取矩阵数据
- CSS之:active选择器
- 面试题整理 4 合并两个排序的数组
- Balanced Team
- 链接 动态链接 静态链接
- vue---day03
- java foreach 跳过本次循环_【Java】对foreach循环的思考
- 控件安全注册方法3选
- Vue (响应式原理-模拟-1-vue)
- Python:[-1]、[:-1]、[::-1]、[n::-1] 原理大详解(超全超仔细!)
- ArcGIS10.2不能打开10.6版本创建的镶嵌数据集
- Leetcode: 2. Add Two Numbers
- 联合索引(a,b,c),怎么单独检索b用上索引
- R 学习 - 火山图
- ETL工作经验分享(1)
- 【开发规范】持续更新中......
- oracle INS-40930,Oracle 并行原理深入解析及案例精粹
- CCF系列题解--2017年12月第三题 Crontab
- C++数据结构实验--图的基本操作
- python -m pip install --upgrade pip
热门文章
- 2008年小结,我想,我就从这里开始
- 安全客2017季刊-第3期
- C#类的一些简单比较
- PHP好玩的代码一(笛卡尔的情书)
- 查看文件大小du -sh ./ ll -h
- 弹出界面eth0/eth1错误 激活连接失败 master connection not found or invalid 解决办法
- BASE64Encoder及BASE64Decoder的正确用法
- android 自定义海报,Android仿海报工厂(完)
- Kafka相关面试真题整理( 持续更新... ... )
- Springboot整合ES