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.