我正在执行发布测试周期。 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/