Tại sao không có tệp thư viện được cài đặt để kiểm tra google?


54

Gói libgtest-dev dường như chỉ cài đặt các tệp tiêu đề cho hệ thống, nhưng không phải là các thư viện tĩnh và động nên được cài đặt trong / usr / lib.

Có phải là một lỗi?


2
Vì nó cố ý, nó không phải là một lỗi; Tuy nhiên, tình hình là hoàn toàn khó hiểu. Do đó, tôi đã gửi báo cáo lỗi tại bug.debian.org/cgi-bin/ormsreport.cgi?orms=802587 .
Joachim W

ugh ... khung thử nghiệm của boost có "chỉ hoạt động" không?
Andrew Wagner

Câu trả lời:


70

Có phải là một lỗi?

Không, đó là cố ý:

gtest (1.6.0-1ubfox2) chính xác; khẩn cấp = thấp

  * Dừng phân phối thư viện tĩnh (mặc dù vẫn xây dựng nó, để đảm bảo gtest
    làm). Thượng nguồn đề nghị chống lại việc vận chuyển libary ở tất cả, chỉ là
    nguồn. (Xem: http://code.google.com.vn/p/googletest/wiki/FAQ)
    Nhà bảo trì Debian cũng có kế hoạch thực hiện điều này (xem BTS: 639495); làm điều đó trong
    Ubuntu bây giờ để đáp ứng các yêu cầu MIR.

Xây dựng thư viện tĩnh

cd / usr / src / gtest
sudo cmake.
sudo làm
sudo mv libg * / usr / lib /

Biên tập:

Các tên đã thay đổi một chút trong những năm qua, mặc dù quá trình vẫn giữ nguyên. Trong Ubuntu 17.04:

sudo apt-get install libgtest-dev
cd /usr/src/googletest/googletest
sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo cp libgtest* /usr/lib/
cd ..
sudo rm -rf build

Cảm ơn! Tôi đã xây dựng các thư viện theo cách này. Chỉ cần nghĩ rằng nó có thể không phải là một cách tiếp cận chính thức cho gói .deb.
eddyxu

1
Google hoạt động theo những cách bí ẩn! :) Vui mừng vì nó đã giúp.
ish

2
Phiên bản sao chép-dán:cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ && cd -
exic

2
Thực tế lý do được mô tả ở đây có thể được áp dụng cho bất kỳ thư viện. Ví dụ: nếu boost được liên kết với libstdc ++ và bạn muốn sử dụng libc ++, bạn cần biên dịch lại boost từ các nguồn. Thật lạ, IMHO
ruslo

7
Đây là asinine kỳ dị. Tại sao địa ngục họ sẽ không gửi thư viện cho nguồn? Hoặc ít nhất có gói cài đặt xây dựng nó tự động.
Tên giả

23

Cải thiện câu trả lời của izx tôi đã sử dụng cmake theo cách này:

sudo cmake -DCMAKE_BUILD_TYPE=RELEASE .

và tôi sẽ thử xây dựng ngoài nguồn:

cd /tmp
mkdir .build
cd .build
cmake -DCMAKE_BUILD_TYPE=RELEASE /usr/src/gtest/
make
sudo mv libg* /usr/lib/

0

Lưu ý rằng cách được đề xuất bởi google là để dự án hiện tại của bạn kéo mã nguồn gtest vào.

Ngoài ra, khi sử dụng với CMake, bạn có thể sử dụng add_subdirectoryđể thêm nguồn gtest đi kèm libgtest-devvì nó theo mặc định đi vào /usr/src/googletest.

Sau đây sẽ làm việc

add_subdirectory(/usr/src/googletest gtest)
target_link_libraries(your_executable gtest)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.