【发布时间】:2020-08-05 22:55:47
【问题描述】:
我想在 Ubuntu x64 PC 上用 ARM 交叉编译器交叉编译 pocl。
使用在 Ubuntu x64 PC 上运行的 ARM 交叉编译器编译 pocl1.4 并生成其 ARM 可执行文件
离线编译 kernel.cl 并使用在 Ubuntu x64 PC 上运行的 poclcc 生成它的 ARM 可执行文件
我尝试了以下方法:
1. download llvm9, make and install to Ubuntu
$cmake -G "Unix Makefiles" ../llvm-9.0.0.src -DCMAKE_INSTALL_PREFIX=/home/llvm -DCMAKE_BUILD_TYPE=Release
$make -j12
$sudo make install
2. download pocl1.4, make and install to Ubuntu
$cmake -DLLC_TRIPLE=aarch64-linux-gnu -DLLC_HOST_CPU=cortex-a53 -DWITH_LLVM_CONFIG=/home/llvm_ubuntu/bin/llvm-config ..
$make
$sudo make install
但我得到了错误。
/usr/bin/ld: unrecognised emulation mode: aarch64linux
Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu i386linux elf_l1om elf_k1om i386pep i386pe
error: linker command failed with exit code 1 (use -v to see invocation)
有人有办法解决吗?
【问题讨论】:
-
似乎调用了错误的
ld。您需要安装一个 ARMld(apt-get install binutils-aarch64-linux-gnu) 并告诉 CMake 使用它(即调用aarch64-linux-gnu-ld而不仅仅是ld)。 -
谢谢。我这样做了,但错误消息出来了。 CMakeLists.txt SET(CMAKE_LINKER _path to_/aarch64-linux-gnu-ld)
标签: arm cross-compiling pocl