目录

ubuntu上构建ios交叉编译环境

ubuntu上构建ios交叉编译环境

ubuntu 12.04 安装llvm3.4、ios-lang交叉编译环境

在ubuntu 12.04上先安装gcc-4.8,然后安装llvm,clang,libcxx,libcxxabi.由于libcxx和libcxxabi相互依赖,需要两次安装libcxx。最后安装theos等开放的ios开发工具链
安装gcc-4.8如前文所述install gcc4.8 on ubuntu 12.04

安装llvm,clang

/etc/apt/sources.list中添加如下两行:

1
2
deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.4 main
deb-src http://llvm.org/apt/precise/ llvm-toolchain-precise-3.4 main

检索签名:

1
wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add -

安装与llvm-3.4,clang-3.4相关的所有包:

1
apt-get install clang-3.4 clang-3.4-doc libclang-common-3.4-dev libclang-3.4-dev libclang1-3.4 libclang1-3.4-dbg libllvm-3.4-ocaml-dev libllvm3.4 libllvm3.4-dbg lldb-3.4 llvm-3.4 llvm-3.4-dev llvm-3.4-doc llvm-3.4-examples llvm-3.4-runtime clang-modernize-3.4 clang-format-3.4 python-clang-3.4 lldb-3.4-dev

安装libcxx:

1
svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx

查看g++使用的头文件:

1
echo | g++ -Wp,-v -x c++ - -fsyntax-only

将会输出类似如下结果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux- gnu/4.8/../../../../x86_64-linux-gnu/include"
### #include "..." search starts here:
### include <...> search starts here:
/usr/include/c++/4.8
/usr/include/c++/4.8/x86_64-linux-gnu
/usr/include/c++/4.8/backward
/usr/lib/gcc/x86_64-linux-gnu/4.8/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.

编译安装libcxx:

1
2
3
CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DLIBCXX_CXX_ABI=libsupc++ - DLIBCXX_LIBSUPCXX_INCLUDE_PATHS="/usr/include/c++/4.7/;/usr/include/x86_64-linux- gnu/c++/4.7/" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr <libc++-source-dir>
make
sudo make install

安装libcxxabi

首先安装相关依赖:

1
sudo apt-get install g++ subversion cmake swig python-dev libedit-dev libunwind8 libunwind8-dev

下载源码并编译:

1
2
3
4
5
6
svn co http://llvm.org/svn/llvm-project/libcxxabi/trunk libcxxabi
cd libcxxabi/lib
./buildit
sudo cp libc++abi.so.1.0 /usr/lib
sudo ln -s /usr/lib/libc++abi.so.1.0 /usr/lib/libc++abi.so.1
sudo ln -s /usr/lib/libc++abi.so.1 /usr/lib/libc++abi.so

使用libc++abi来安装libc++

1
2
3
4
5
6
7
svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx
cd libcxx
mkdir build
cd build
CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DLIBCXX_CXX_ABI=libcxxabi -  DLIBCXX_LIBCXXABI_INCLUDE_PATHS="<libc++abi-source-dir>/include" -  DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ../
make
sudo make install

至此ubuntu 12.04上的LLVM环境就算搭建好了。