私は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
にする必要があります。
素晴らしい感謝 - 私はそれを試してみましょう! –
リンクはMacKeeperのスパムページに移動します。 – mtnygard
@mtnygard、うわー、これまでに見たリンクの腐敗の最悪の種類 –