2013-09-05 35 views
16

Xây dựng tiết kiệm 0.9.1 (hỗ trợ C, C++, java, C#, perl, python) trên Ubuntu 13.04 Tôi nhận được lỗi này.lỗi libtool xây dựng tiết kiệm 0.9.1 trên Ubuntu 13.04

./configure chạy mà không bất kỳ tùy chọn, hãy chạy mà không bất kỳ tùy chọn ...

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

khi cấu hình không nơi nương tựa C++ (./configure -with-cpp = no) thực hiện chạy thành công. Điều này có vẻ là một vấn đề đường dẫn đối với libtool; ThriftTest_constants.o hiện diện. –

+1

Vấn đề tương tự trên Ubuntu 13.10. Giải quyết bằng cách loại bỏ hỗ trợ C++ như đã nêu ở trên. –

Trả lời

12

Trong khi điều này có vẻ là một khiếm khuyết trong việc phát hành tarball 0.9.1, nó không phải là một vấn đề trong đầu của cây kéo qua git vào chiều nay.

Giải pháp nếu gặp phải vấn đề này là sử dụng phiên bản mới hơn của tiết kiệm bằng cách lấy cây nguồn trực tiếp thông qua git thay vì tải xuống tarball. Sự khác biệt duy nhất trong xây dựng là bạn sẽ cần phải chạy bootstrap.sh trước khi cấu hình. Đây là tài liệu tốt.

Lưu ý hai bit hữu ích bổ sung của dữ liệu: 1. Cấu hình để xây dựng --without-kiểm tra (Mike Johnson dưới đây - nhờ) 2. Vấn đề này được cố định trong 0.9.2 phát hành

(Luke liệt kê dưới đây cảm ơn!)
+0

tài liệu này được viết ở đâu? bởi vì tại thời điểm này tôi không thể tìm thấy bất cứ điều gì về việc phải làm với tiết kiệm sau khi tải tar.gz, tôi đã cấu hình và thực hiện sau đó tôi có cùng một vấn đề như bạn, nhưng tôi chạy bootstrap đầu tiên và nó thay đổi không có gì – AngryDuck

+0

git clone https: //git-wip-us.apache.org/repos/asf/thrift.git tiết kiệm; tiết kiệm đĩa. Sau đó chạy bootstrap và cấu hình như bạn đã làm trên tarball –

+0

cũng được ghi lại ở đây: http: //thrift.apache.org/docs/BuildingFromSource/ –

9

Tôi gặp vấn đề này tối nay và "cố định" nó. Vấn đề là ar (1) không thể tìm thấy các tập tin .o trong thư mục test/cpp/.libs. Tôi chắc chắn rằng có một số phép thuật bị thiếu trong Makefile.am trong bài kiểm tra/cpp, nhưng tôi không phải là sự kiên nhẫn hoặc tự động hóa-fu để sửa lỗi đó.

Thay vào đó, tôi chỉ liên kết các tệp .o từ bài kiểm tra/cpp tới bài kiểm tra/cpp/.libs /. Điều đó sửa chữa việc xây dựng các bài kiểm tra C++.

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

Bạn cũng có thể thử điều này:

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

này chỉ đơn giản là sẽ liên kết .libs trở lại kiểm tra/cpp. "ar" sẽ tìm thấy các tập tin đó.

6

Tiết kiệm được giải phóng bằng vấn đề biên dịch này. Bạn có thể chọn bỏ qua các bài kiểm tra biên dịch, thay vào đó:

./configure --without-tests 
-1

Tôi đã gặp phải vấn đề này. Bạn có thể thử cp all test/cpp/*. O vào thư mục .libs.

Hoặc bạn có thể bỏ qua các thử nghiệm biên dịch.

cp test/cpp/*.o test/cpp/.libs/ 
+0

Tôi nghĩ rằng nó sẽ hữu ích hơn cho OP và khách truy cập tiếp theo, khi bạn thêm một số giải thích cho sự tăng cường của bạn. – reporter

1

David V đúng là 0.9.1 bị hỏng nhưng 0.9.2 hoạt động. Hướng dẫn xây dựng dường như là một liên kết bị hỏng. Vì vậy, đây là các lệnh mà làm việc cho tôi, từ một Ubuntu tươi cài đặt:

# 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 

(tín dụng đi vào these hướng dẫn hữu ích, tôi vừa thay thế 0.9.1 với 0.9.2)

Các vấn đề liên quan