2013-05-07 6 views
0

при установке инструмента Bowu в ubuntu 12.04, происходит следующая ошибка $ makeBow toolkit ubuntu/usr/bin/ld: не удалось найти -lgcc_s collect2: ld возвращен 1 статус выхода make: *** [rainbow] Ошибка 1

gcc-3.4 -lnsl -L. -lbow -L./argp -largp -lm -lcrypt -g -O -Wall -Wimplicit -o радуга rainbow.o active.o deflexer.o em.o emsimple.o kl.o knn.o максимальный.o naivebayes. о nbshrinkage.o nbsimple.o prind.o tfidf.o svm_base.o svm_smo.o svm_al.o svm_trans.o svm_fisher.o

/USR/BIN/LD: не может найти -lgcc_s collect2: л.д. возвращается 1 выход статус марка: * [радуга] Ошибка 1 Помощь в resove

+0

Некоторые более новые версии Gcc придирчивы к порядку аргументов, попробуйте переместить «-o rainbow» последним? – tripleee

+0

На самом деле все '-l ' должно быть последним. «gcc» имеет тенденцию обрабатывать вещи слева направо (странно, да?), что может вызвать непредвиденные/трудно объясняемые проблемы, особенно во время фазы ссылки, когда вещи «вышли из строя» ... – twalberg

ответ

0

я получил подобную ошибку компоновщика (/ USR/бен/л.д.: не может найти -lgcc_s) пытается запустить ./configure в течение Emacs 24,3 источника пучок с gcc 4.7.2. Я был в состоянии найти именно то, что Л.Д. искало обертывание Gcc вызова с «Трассированием -f»:

strace -f gcc conftest.c > strace.dump 2>&1 

Оказался НКА и л.д. искали libgcc_s.so и libgcc_s.so.1. У меня был установлен libgcc (в моем случае «yum install libgcc47.i686»), но эти два файла не были, как таковые, на путях ld и gcc. Решение было просто:

sudo ln -s /lib64/libgcc_s-4.7.2-20120921.so.1 /lib64/libgcc_s.so.1 
sudo ln -s /lib64/libgcc_s-4.7.2-20120921.so.1 /lib64/libgcc_s.so