1

我正在执行发布测试周期。GNU Linux 的一项测试是与Gold 链接器的集成:

export LD=ld.gold
make

makefile 具有以下逻辑来识别 Gold 链接器:

# LD gold linker testing
ifeq ($(findstring ld.gold,$(LD)),ld.gold)
GOLD_OPTION = -Wl,-fuse-ld=gold
endif # Gold

然后是利用它的配方:

cryptest.exe: libcryptopp.a $(TESTOBJS)
    $(CXX) -o $@ $(CXXFLAGS) $(TESTOBJS) ./libcryptopp.a $(LDFLAGS) $(GOLD_OPTION) $(LDLIBS)

但是,在针对 Cygwin 运行时:

g++ -o cryptest.exe -DNDEBUG -g3 -O3 -march=native -pipe bench.o bench2.o test.o \
  validat1.o validat2.o validat3.o adhoc.o datatest.o regtest.o fipsalgt.o dlltest.o \
  ./libcryptopp.a -Wl,-fuse-ld=gold
collect2: fatal error: cannot find 'ld'

我检查了Cygwin FAQ,但它没有提到 Gold。但是,它确实调用了 Gold 所属的 Binutils。并且端口不拒绝-fuse-ld=gold

Cygwin 是否支持 Gold 链接器?如果是这样,我该怎么办?


(Cygwin 似乎可以从 Gold 中受益,因为链接需要很长时间。在这个测试系统上,链接大约需要 15 到 20 秒cryptest.exe。所以这也是个人目标)。

4

1 回答 1

4

不,根据您链接的 wiki 页面,黄金仅限于 ELF 格式。Windows 使用 PE 格式。

于 2015-08-11T21:34:51.723 回答