2013-03-11 5 views
5

するためのオプションを構築:LLVMが、私は3.2のLLVMソースをフェッチしてきた、と私の設定があり、私は最高のビルドオプションがRaspbian</p> <p>にLLVM 3.2のためのものであるかの明確化を求めていARM/RaspberryPi

cd llvm-3.2.src 
./configure --build=armv6-unknown-linux-gnueabi \ 
--host=armv6-unknown-linux-gnueabi \ 
--target=armv6-unknown-linux-gnueabi --with-cpu=arm1176jzf-s \ 
--with-float=hard --with-abi=aapcs-vfp --with-fpu=neon \ 
--enable-targets=arm --enable-optimized --enable-assertions 
make REQUIRES_RTTI=1 
sudo make install 

ビルドにはかなりの時間がかかると聞いています。今は数時間走っていて、ただ走らせてくれてうれしいです。

それは、必要な場合ので、私はビルドをやり直すについての良心の呵責を持っていない長期的なビルドプロジェクトです:)

答えて

8

私はRaspbianためLLVMをクロスコンパイルをお勧めしたいです。 Pi自体にそれを構築するには年月がかかる。

まず、debootstrapを使用して作業ルートを取得します(または、既存のRaspbianインストールをクローンするか、ダウンロードしたイメージを展開します)。絶対的なシンボリックリンクの一部を相対パスで置き換える必要があるかもしれません。ビルドエラーを注意してください。

clangが十分にインストールされていることを確認してください(ARMターゲットサポートでビルドすることを忘れないでください)。その後

、次CMakeのツールチェーンの定義とのクロスコンパイルLLVM(あなたはこの段階で、あなたのルートファイルシステムにchrootべきではない!):


set(toolchain_dir /path/to/your/chroot-raspbian-armhf/) 
set(toolchain_bin_dir ${toolchain_dir}/usr/bin) 
set(toolchain_inc_dir ${toolchain_dir}/usr/include) # was /include 
set(toolchain_lib_dir ${toolchain_dir}/usr/lib) 

set(CMAKE_SYSTEM_NAME Linux CACHE INTERNAL "system name") 
set(CMAKE_SYSTEM_PROCESSOR arm CACHE INTERNAL "processor") 
set(CMAKE_C_COMPILER clang) 
set(CMAKE_CXX_COMPILER clang++) 
set(CMAKE_C_FLAGS "-O2 -integrated-as -target armv6-linux-gnueabihf -mfloat-abi=hard --sysroot=${toolchain_dir}" CACHE INTERNAL "c compiler flags") 
set(CMAKE_CXX_FLAGS "-O2 -integrated-as -target armv6-linux-gnueabihf -mfloat-abi=hard --sysroot=${toolchain_dir}" CACHE INTERNAL "cxx compiler flags") 

set(link_flags "-L${toolchain_lib_dir} -ldl") 

set(CMAKE_EXE_LINKER_FLAGS ${link_flags} CACHE INTERNAL "exe link flags") 
set(CMAKE_MODULE_LINKER_FLAGS ${link_flags} CACHE INTERNAL "module link flags") 
set(CMAKE_SHARED_LINKER_FLAGS ${link_flags} CACHE INTERNAL "shared link flags") 
set(CMAKE_FIND_ROOT_PATH ${toolchain_lib_dir} CACHE INTERNAL "cross root directory") 
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH CACHE INTERNAL "") 
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY CACHE INTERNAL "") 
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY CACHE INTERNAL "") 

cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/the/file/above.txtを使用)

そのターゲットに注意してください。 armv6-linux-gnueabiではなく、armv6-linux-gnueabihfにする必要があります。

+0

素晴らしい感謝 - 私はそれを試してみましょう! –

+0

リンクはMacKeeperのスパムページに移動します。 – mtnygard

+0

@mtnygard、うわー、これまでに見たリンクの腐敗の最悪の種類 –

関連する問題