使用llvm从桌面到手臂交叉编译

时间:2014-06-13 11:25:14

标签: arm llvm

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

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

我正在使用以下命令并收到以下错误(请参阅下文)。知道什么是错的吗?

谢谢

------------------------------- START --------------- -------------------------------

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 =' - 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'

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

错误:

------------------------------- START --------------- -------------------------------

- CXX编译器标识是Clang 3.5.0 - 使用Ninja检查工作CXX编译器 - 检查使用的CXX编译器:Ninja - broken /usr/share/cmake-2.8/Modules/CMakeTestCXXCompiler.cmake:54中的CMake错误(消息):   C ++编译器“/ usr / bin / clang ++”无法编译简单的测试   程序

它失败并显示以下输出:

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

运行Build命令:/ 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 =皮质-A9

-I / USR /臂-Linux的gnueabihf /包括/ C ++ / 4.7.2 /臂-Linux的gnueabihf /

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

臂-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:错误:链接器命令失败,退出代码为1(使用-v查看

调用)

忍者:构建已停止:子命令失败。

CMake无法正确生成此项目。

调用堆栈(最近一次调用):

CMakeLists.txt:19(项目)

- 配置不完整,发生错误!

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

1 个答案:

答案 0 :(得分:2)

您使用的是错误的指南。

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