【问题标题】:Where to get cross-linker?从哪里获得交联剂?
【发布时间】:2013-05-17 07:16:38
【问题描述】:

我发现为 llvm-clang 提供的选项很少,我可以编译到其他平台。例如,这将为 ios 编译:

clang -cc1 -triple arm-apple-darwin -emit-obj -mrelax-all -disable-free -main-file-name six.c -pic-level 1 -mdisable-fp-elim -masm-verbose -target-abi apcs-gnu -target-cpu arm7tdmi -msoft-float -mfloat-abi soft -target-feature +soft-float -target-feature +soft-float-abi -target-feature -neon -ferror-limit 1 -fmessage-length 122 -stack-protector 1 -mstackrealign -fblocks -fsjlj-exceptions -fcolor-diagnostics prog.c -o -c

因此,您获得了 prog.o,您需要将其复制到本机平台并与本机 ld 链接。但是目标文件已经为那个平台编译了!

现在最后一步是避免在遥控器上使用本机链接器。我需要一个交联剂。但是在哪里可以得到一个?或者 llvm 是否包含一个,我只需要使用正确的选项?或者我需要在跨平台的支持下编译GNU LD?根据我的经验,如果没有专业知识,就无法编译 LD。

【问题讨论】:

    标签: llvm clang ld


    【解决方案1】:

    我在http://ellcc.org 有我与clang 一起使用的gnu 工具版本。我在 Linux 下构建(你没有提到主机操作系统)。我构建了汇编器、ld 和其他实用程序以及 gdb 来支持 ARM、i386、Microblaze、Mips、PowerPC、PowerPC64 和 X86_64。我的构建很酷的一点是,我利用了 GNU 工具的编译能力来支持多个目标。 ldgdb 和大多数实用程序都支持所有处理器。只有 as 需要为每个目标使用单独的二进制文件。

    【讨论】:

      猜你喜欢
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多