Mengapa tidak ada file perpustakaan yang diinstal untuk uji google?


54

Paket libgtest-dev tampaknya hanya menginstal file header ke sistem, tetapi bukan perpustakaan statis dan dinamis yang harus diinstal di bawah / usr / lib.

Apakah ini bug?


2
Karena disengaja, itu bukan bug; namun situasinya benar-benar membingungkan. Karena itu saya mengajukan laporan bug di bugs.debian.org/cgi-bin/bugreport.cgi?bug=802587 .
— Joachim W

huh ... apakah kerangka pengujian boost "hanya berfungsi"?
— Andrew Wagner

Jawaban:


70

Apakah ini bug?

Tidak, ini disengaja:

gtest (1.6.0-1ubuntu2) tepat; urgensi = rendah

  * Berhenti mendistribusikan perpustakaan statis (meskipun masih membangunnya, untuk memastikan gtest
    bekerja). Hulu merekomendasikan untuk tidak mengirimkan perpustakaan sama sekali, hanya saja
    sumber. (Lihat: http://code.google.com/p/googletest/wiki/FAQ)
    Pemelihara Debian berencana untuk melakukan hal ini juga (lihat BTS: 639795); lakukan itu
    Ubuntu sekarang untuk memenuhi persyaratan MIR.

Untuk membangun perpustakaan statis

cd / usr / src / gtest
sudo cmake.
sudo buat
sudo mv libg * / usr / lib /

Sunting:

Nama-nama telah berubah sedikit selama bertahun-tahun, meskipun prosesnya tetap sama. Di 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

Terima kasih! Saya telah membangun perpustakaan dengan cara ini. Hanya berpikir bahwa itu mungkin bukan pendekatan resmi untuk paket deb.
— eddyxu

1
Google bekerja secara misterius! :) Senang itu membantu.
— ish

2
Versi salin-tempel:cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ && cd -
— exic

2
Sebenarnya alasan yang dijelaskan di sini dapat diterapkan ke perpustakaan mana pun . Misalnya, jika boost dikaitkan dengan libstdc ++ dan Anda ingin menggunakan libc ++, Anda harus mengkompilasi ulang boost dari sumber. Jadi ini aneh, IMHO
— ruslo

7
Ini sangat bodoh. Kenapa mereka tidak mengirim perpustakaan untuk sumbernya? Atau setidaknya instal paket yang membangunnya secara otomatis.
— Nama Palsu

23

Meningkatkan pada jawaban izx saya akan menggunakan cmake dengan cara ini:

sudo cmake -DCMAKE_BUILD_TYPE=RELEASE .

dan saya akan mencoba membangun di luar sumber:

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

0

Perhatikan bahwa cara yang disarankan oleh google adalah meminta proyek Anda yang ada menarik kode sumber gtest.

Atau, saat menggunakan CMake, Anda dapat menggunakan add_subdirectoryuntuk menambahkan sumber gtest yang disertakan libgtest-devkarena secara default masuk ke dalamnya /usr/src/googletest.

Berikut ini akan berfungsi

add_subdirectory(/usr/src/googletest gtest)
target_link_libraries(your_executable gtest)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.