2013-09-05 15 views
16

Costruzione parsimonia 0.9.1 (supporto C, C++, java, C#, perl, python) su Ubuntu 13.04 Ho riscontrato questo errore.Errore libtool generazione parsimonia 0.9.1 su Ubuntu 13.04

./configure corsa senza alcuna opzione, fare eseguire senza alcuna opzione ...

Making all in test 
make[2]: Entering directory `/home/dvb/sw/thrift-0.9.1/test' 
Making all in nodejs 
make[3]: Entering directory `/home/dvb/sw/thrift-0.9.1/test/nodejs' 
make[3]: Nothing to be done for `all'. 
make[3]: Leaving directory `/home/dvb/sw/thrift-0.9.1/test/nodejs' 
Making all in cpp 
make[3]: Entering directory `/home/dvb/sw/thrift-0.9.1/test/cpp' 
Makefile:832: warning: overriding commands for target `gen-cpp/ThriftTest.cpp' 
Makefile:829: warning: ignoring old commands for target `gen-cpp/ThriftTest.cpp' 
/bin/bash ../../libtool --tag=CXX --mode=link g++ -Wall -g -O2 -L/usr/lib -o libtestgencpp.la ThriftTest_constants.lo ThriftTest_types.lo ../../lib/cpp/libthrift.la -lssl -lcrypto -lrt -lpthread 
libtool: link: ar cru .libs/libtestgencpp.a .libs/ThriftTest_constants.o .libs/ThriftTest_types.o 
ar: .libs/ThriftTest_constants.o: No such file or directory 
make[3]: *** [libtestgencpp.la] Error 1 
make[3]: Leaving directory `/home/dvb/sw/thrift-0.9.1/test/cpp' 
make[2]: *** [all-recursive] Error 1 
make[2]: Leaving directory `/home/dvb/sw/thrift-0.9.1/test' 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory `/home/dvb/sw/thrift-0.9.1' 
make: *** [all] Error 2 
[email protected]:~/sw/thrift-0.9.1$ 
+6

quando configurato senza supporto C++ (./configure -with-cpp = no) esegue correttamente il completamento. Questo sembra essere un problema di percorso rispetto a libtool; ThriftTest_constants.o è presente. –

+1

Lo stesso problema su Ubuntu 13.10. Risolto rimuovendo il supporto C++ come sopra indicato. –

risposta

12

Anche se questo sembra essere un difetto nel tarball di rilascio 0.9.1, non è un problema in cima di albero tirato via git a partire da questo pomeriggio.

La soluzione, se si incontra questo problema, è utilizzare una versione più recente di parsimonia ottenendo l'albero dei sorgenti direttamente tramite git invece di scaricare il tarball. L'unica differenza nella build è che dovrai eseguire bootstrap.sh prima di configurare. Questo è ben documentato.

Nota due supplementari utile bit di dati: 1. Configurare per costruire --without-test (Mike Johnson di seguito - grazie) 2. Questo problema è stato risolto in 0.9.2 rilascio

(Luca sotto- grazie!)
+0

dove è ben documentato? perché al momento non riesco a trovare nulla su cosa fare con parsimonia dopo aver scaricato il tar.gz, ho avuto modo di configurare e fare quindi ho lo stesso problema come te, ma eseguo il bootstrap prima e non cambia nulla – AngryDuck

+0

git clone https: //git-wip-us.apache.org/repos/asf/thrift.git parsimonia; parsimonia del cd. Quindi esegui bootstrap e configura come hai fatto sul tarball –

+0

ben documentato qui: http: //thrift.apache.org/docs/BuildingFromSource/ –

9

Mi sono imbattuto in questo problema stasera e "risolto". Il problema è che ar (1) non riesce a trovare i file .o nella directory test/cpp/.libs. Sono sicuro che ci sia della magia mancante nel Makefile.am in test/cpp, ma non ho né la pazienza né l'automake-fu per risolverlo.

Invece, ho solo collegato i file .o da test/cpp a test/cpp/.libs /. Questo corregge la build dei test C++.

cd thrift-0.9.1/test/cpp/.libs 
for i in ../*.o; do echo $i; ln -s $i .; done 
3

Si può anche provare questo:

./configure 
(cd test/cpp; ln -s . .libs) 
make install 

Questo sarà semplicemente un collegamento .libs torna a test/cpp. "ar" troverà i file lì.

6

In seguito a questo problema di compilazione si sono verificati problemi. Puoi scegliere di saltare i test di compilazione, invece:

./configure --without-tests 
-1

Mi è capitato di affrontare questo problema. Puoi provare cp all test/cpp/*. O nella cartella .libs.

Oppure è possibile saltare i test di compilazione.

+0

Penso che sarebbe più utile per l'OP e altri visitatori, quando aggiungerai qualche spiegazione alla tua intenzione. – reporter

1

David V ha ragione che 0.9.1 è rotto ma 0.9.2 funziona. Anche le istruzioni di compilazione sembrano essere un collegamento interrotto. Così qui sono i comandi che hanno lavorato per me, da una nuova installazione di Ubuntu:

# Install java if you don't have it 
sudo apt-get install default-jre 
# install build dependencies 
sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libboost-system-dev libboost-filesystem-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev 
cd /tmp 
curl http://archive.apache.org/dist/thrift/0.9.2/thrift-0.9.2.tar.gz | tar zx 
cd thrift-0.9.2/ 
./configure 
make 
sudo make install 
#test that it can run 
thrift --help 

(merito va a these utile istruzioni, ho solo sostituito 0.9.1 con 0.9.2)

Problemi correlati