我正在执行发布测试周期。 GNU Linux的测试之一是与Gold linker集成:

export LD=ld.gold
make

生成文件具有以下逻辑来识别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。但是,它确实呼出了Binutils,Gold是其中的一部分。并且该端口不拒绝-fuse-ld=gold

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

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

最佳答案

否。在您链接的Wiki页面上,金币仅限于ELF格式。 Windows使用PE格式。

关于c++ - Cygwin是否支持Gold链接器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31951499/

10-10 14:44