【问题标题】:Crosscompile using llvm from desktop to arm使用llvm从桌面交叉编译到arm
【发布时间】:2014-08-03 22:43:43
【问题描述】:

我正在笔记本电脑上编写 c 代码,我想使用 llvm-clang 工具链将其交叉编译为 ARM v7 架构。

我正在关注这个网站http://llvm.org/docs/HowToCrossCompileLLVM.html 使用这个命令来配置cmake:

我正在使用以下命令并收到以下错误(见下文)。知道有什么问题吗?

谢谢

-------------------开始--------------- -------------------------------------------

cmake -G Ninja /home/user/Desktop/llvm/llvm -DCMAKE_CROSSCOMPILING=True -DCMAKE_INSTALL_PREFIX=/home/user/Desktop/llvm/llvm/new_build -DLLVM_TABLEGEN=/usr/bin/host/llvm-tblgen - DCLANG_TABLEGEN=/usr/bin/host/clang-tblgen -DLLVM_DEFAULT_TARGET_TRIPLE=arm-linux-gnueabihf -DLLVM_TARGET_ARCH=ARM -DLLVM_TARGETS_TO_BUILD=ARM -DCMAKE_CXX_FLAGS='-目标 armv7a-linux-gnueabihf -mcpu=cortex-a9 -I/usr/ arm-linux-gnueabihf/include/c++/4.7.2/arm-linux-gnueabihf/ -I/usr/arm-linux-gnueabihf/include/ -mfloat-abi=hard -ccc-gcc-name arm-linux-gnueabihf -gcc'

------------------------------END---------------- ----------------------------------

错误:

-------------------开始--------------- -------------------------------------------

-- CXX 编译器标识为 Clang 3.5.0 -- 检查工作的 CXX 编译器使用:Ninja -- 检查工作的 CXX 编译器使用:Ninja -- 损坏 /usr/share/cmake-2.8/Modules/CMakeTestCXXCompiler.cmake:54 处的 CMake 错误(消息): C++ 编译器“/usr/bin/clang++”不能编译一个简单的测试 程序。

失败,输出如下:

更改目录:/home/user/Desktop/llvm/llvm/new_build/CMakeFiles/CMakeTmp

运行编译命令:/usr/bin/ninja cmTryCompileExec1541562247

[1/2] 构建 CXX 对象

CMakeFiles/cmTryCompileExec1541562247.dir/testCXXCompiler.cxx.o

[2/2] 链接 CXX 可执行文件 cmTryCompileExec1541562247

失败: : && /usr/bin/clang++ -target armv7a-linux-gnueabihf

-mcpu=cortex-a9

-I/usr/arm-linux-gnueabihf/include/c++/4.7.2/arm-linux-gnueabihf/

-I/usr/arm-linux-gnueabihf/include/-mfloat-abi=hard -ccc-gcc-name

arm-linux-gnueabihf-gcc

CMakeFiles/cmTryCompileExec1541562247.dir/testCXXCompiler.cxx.o -o

cmTryCompileExec1541562247 -rdynamic && :

/usr/bin/ld:无法识别的仿真模式:armelf_linux_eabi

支持的仿真:elf_x86_64 elf32_x86_64 elf_i386 i386linux elf_l1om

elf_k1om i386pep i386pe

clang: error: 链接器命令失败,退出代码为 1(使用 -v 查看

调用)

ninja:构建停止:子命令失败。

CMake 将无法正确生成此项目。

调用堆栈(最近调用优先):

CMakeLists.txt:19(项目)

-- 配置不完整,出现错误!

------------------------------END---------------- ----------------------------------

【问题讨论】:

    标签: arm llvm


    【解决方案1】:

    您使用了错误的指南。

    您链接的网页是有关如何使用 LLVM 和 Clang 交叉编译 LLVM 和 Clang 的指南。但是你不想编译 LLVM 本身,你只想使用它。指南是:http://clang.llvm.org/docs/CrossCompilation.html

    【讨论】:

      猜你喜欢
      • 2022-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多