Perché nessun file di libreria installato per google test?


54

Il pacchetto libgtest-dev sembra installare solo i file header nel sistema, ma non le librerie statiche e dinamiche che dovrebbero essere installate in / usr / lib.

E 'un errore?


2
Dal momento che è intenzionale, non è un bug; eppure la situazione è assolutamente confusa. Ho quindi presentato una segnalazione di bug su bugs.debian.org/cgi-bin/bugreport.cgi?bug=802587 .
Joachim W

ugh ... il framework di test di boost "funziona"?
Andrew Wagner,

Risposte:


70

E 'un errore?

No, è deliberato:

gtest (1.6.0-1ubuntu2) preciso; urgenza = basso

  * Smetti di distribuire la libreria statica (sebbene continui a crearla, per garantire gtest
    lavori). Upstream raccomanda di non spedire affatto la libreria, solo il
    fonte. (Vedi: http://code.google.com/p/googletest/wiki/FAQ)
    Anche il manutentore Debian ha intenzione di farlo (vedere BTS: 639795); fallo dentro
    Ubuntu ora soddisfa i requisiti MIR.

Per creare librerie statiche

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

Modificare:

I nomi sono leggermente cambiati nel corso degli anni, sebbene il processo rimanga lo stesso. In 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

Grazie! Ho costruito le librerie in questo modo. Ho solo pensato che potrebbe non essere un approccio ufficiale per un pacchetto .deb.
Eddyxu,

1
Google funziona in modo misterioso! :) Sono contento che abbia aiutato.
Ish,

2
Versione copia-incolla:cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ && cd -
exic

2
In realtà la ragione descritta qui può essere applicata a qualsiasi biblioteca. Ad esempio, se boost è collegato a libstdc ++ e si desidera utilizzare libc ++, è necessario ricompilare boost dai sorgenti. Quindi è strano, IMHO
ruslo,

7
Questa è un'asinina fuori di testa. Perché diavolo non spedirebbero la biblioteca per la fonte? O almeno far installare automaticamente il pacchetto.
Nome falso

23

Migliorando la risposta di izx avrei usato cmake in questo modo:

sudo cmake -DCMAKE_BUILD_TYPE=RELEASE .

e tenterei una build out-of-source:

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

0

Nota che il modo consigliato da google è di far inserire il tuo codice sorgente al tuo progetto esistente dal tuo progetto esistente.

In alternativa, quando si utilizza con CMake, è possibile utilizzare add_subdirectoryper aggiungere l'origine gtest fornita in libgtest-devquanto viene utilizzata per impostazione predefinita /usr/src/googletest.

Di seguito funzionerà

add_subdirectory(/usr/src/googletest gtest)
target_link_libraries(your_executable gtest)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.