各位不好意思,这么久都还没有更新新的一期。这一期我主要想说说编译llvm的过程,包括在PC上和在Android(这么久没更新教程,就是因为在弄Android的LLVM,总是失败)上。


下载llvm源码包:

http://llvm.org/releases/download.html#3.4

选择LLVM source code便可

解压到一个目录

注:以下过程需要您已经安装有CMake,zlib,libxml2,xz

PC编译:

打开msys,并cd进llvm-3.4文件夹,输入:


mkdir win-bdir

cd win-bdir

cmake -G "MSYS Makefiles" ../ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`pwd`/../win-out


其中MSYS Makefiles可以按需要换成所需的以生成其他工程文件

接着:


make

make install


make的过程中可能会在llvm-ar的地方报错,但只需要再输入一次make便可(原因应该是windows的文件系统问题)

至此,在llvm-3.4/win-out目录下便有我们所需的文件了

Android编译:

打开msys,并cd进llvm-3.4文件夹,输入:

mkdir and-bdir

cd and-bdir

cmake -G "MSYS Makefiles" ../ -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=arm-linux-androideabi-gcc -DCMAKE_CXX_COMPILER=arm-linux-androideabi-g++ -DCMAKE_CROSSCOMPILING=True -DCMAKE_INSTALL_PREFIX=`pwd`/../and-out -DLLVM_TABLEGEN=`pwd`/../win-out/bin/llvm-tblgen.exe -DLLVM_DEFAULT_TARGET_TRIPLE='arm-linux-android' -DLLVM_TARGET_ARCH=ARM -DLLVM_TARGETS_TO_BUILD=ARM -DCMAKE_FIND_ROOT_PATH='D:/android-toolchain/sysroot' -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY


上面有几个要注意一下,arm-linux-androideabi-gcc来自于ndk,为用ndk里的make-standalone.sh生成的一个独立工具链,且我把他生成在了D:/android-toolchain(-DCMAKE_FIND_ROOT_PATH='D:/android-toolchain/sysroot'这里记得一定要改!)并在环境变量中把bin目录添加到了path,你也应该这样做

还有就是-DLLVM_TABLEGEN=`pwd`/../win-out/bin/llvm-tblgen.exe这一句,请按需填写自己pc上的llvm-tblgen的位置


make

make install


还是会在llvm-ar的地方出Error,但不用管

llvm-3.4/and-out便是我们需要的文件

但是:里面的lli是不能用的,因为linker自动优化而把一些链接删掉了(总体上看是好事),所以用lli运行ir文件的时候会提示找不到外部函数


更多相关文章

  1. 【Android(安卓)FFMPEG 开发】音视频基础 和 FFMPEG 编译 ( 音视
  2. android应用程序项目结构-02
  3. 给android添加busybox
  4. Android中的数据存储之文件存储、SharedPreferences和Pull解析
  5. Android轮播图的实现
  6. 在Android(安卓)Studio上快速导入Eclipse风格
  7. Android(安卓)Studio官方文档之添加多种密度的矢量图形
  8. Android下的数据储存方式( 二)
  9. Android调用so文件(C代码库)方法详解

随机推荐

  1. Android(安卓)O WiFi启动流程
  2. Android动态加载dex技术初探
  3. android 实现天气预报(带动画的和不带动
  4. Android(安卓)Dial处理过程
  5. Android(安卓)Thread 常用方法
  6. Android(安卓)recovery 下使用 updater-s
  7. Android适用于IM通知音频的SoundPool
  8. android实现图片按任意路径截取
  9. 系出名门Android(7) - 控件(View)之ZoomC
  10. android src: eclipse 导入 android Sett