如何为自动架构的构建配置非标准链接器?

时间:2014-01-25 15:32:36

标签: linker configure autotools libtool

我想配置一个自动化项目来调用非标准项目 链接器(gold linker), 使用Linux Mint 16 / Ubuntu 13.10的股票autotools

我相信我会通过以下方式实现这一目标:

  • libtoolize - 项目
  • 正在运行./configure LD=/path/to/my/linker ... etc.

然而这是无效的。 libtoolize取得了成功。后 标准./configure; make我现在看到libtool正在做 联:

/bin/bash ./libtool  --tag=CXX   --mode=link g++  -g -O2    -o helloworld helloworld.o

但将LD=/path/to/my/linker传递给configure没有任何区别。实验上, 我甚至跑了:

./configure LD=/does/not/exist
期待引发错误,但我没有。输出包含:

checking if the linker (/does/not/exist -m elf_x86_64) is GNU ld... no
checking whether the g++ linker (/does/not/exist -m elf_x86_64) supports shared libraries... yes

此后,make继续成功地链接,与之前完全一样地调用g++

配置非标准链接器的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

  

但是将LD = / path /传递给/ my / linker来配置没有区别

这是因为LD几乎从不使用,几乎不会用于链接任何用户空间程序。通过使用适当的编译器驱动程序gccg++等)来执行正确的链接。

  

配置非标准链接器的正确方法是什么?

如果您有/some/path/ld并希望gcc使用ld,请将-B/some/path标记传递给gcc。

然后你可能想要:

./configure CC='gcc -B/some/path' CXX='g++ -B/some/path' ...