Mi ci è voluto un po' per capirlo perché il normale "make install" è stato rimosso e non uso cmake. Ecco la mia esperienza da condividere. Al lavoro, non ho accesso root su Linux, quindi ho installato il framework di test di Google nella mia home directory:~/usr/gtest/
.
Per installare il pacchetto in ~/usr/gtest/ come librerie condivise, insieme alla build di esempio:
$ mkdir ~/temp
$ cd ~/temp
$ unzip gtest-1.7.0.zip
$ cd gtest-1.7.0
$ mkdir mybuild
$ cd mybuild
$ cmake -DBUILD_SHARED_LIBS=ON -Dgtest_build_samples=ON -G"Unix Makefiles" ..
$ make
$ cp -r ../include/gtest ~/usr/gtest/include/
$ cp lib*.so ~/usr/gtest/lib
Per convalidare l'installazione, utilizzare il seguente test.c come semplice esempio di test:
#include <gtest/gtest.h>
TEST(MathTest, TwoPlusTwoEqualsFour) {
EXPECT_EQ(2 + 2, 4);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest( &argc, argv );
return RUN_ALL_TESTS();
}
Per compilare:
$ export GTEST_HOME=~/usr/gtest
$ export LD_LIBRARY_PATH=$GTEST_HOME/lib:$LD_LIBRARY_PATH
$ g++ -I $GTEST_HOME/include -L $GTEST_HOME/lib -lgtest -lgtest_main -lpthread test.cpp
Prima di iniziare assicurati di aver letto e compreso questa nota di Google! Questo tutorial semplifica l'utilizzo di gtest, ma può introdurre fastidiosi bug.
1. Ottieni il framework googletest
wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz
Oppure prendilo a mano. Non manterrò questo piccolo How-to, quindi se ti sei imbattuto in esso e i link sono obsoleti, sentiti libero di modificarlo.
2. Disimballare e creare Google Test
tar xf release-1.8.0.tar.gz
cd googletest-release-1.8.0
cmake -DBUILD_SHARED_LIBS=ON .
make
3. "Installa" gli header e le librerie sul tuo sistema.
Questo passaggio potrebbe differire da distro a distro, quindi assicurati di copiare le intestazioni e le librerie nella directory corretta. Ho ottenuto ciò controllando dove si trovavano le precedenti librerie gtest di Debian. Ma sono sicuro che ci sono modi migliori per farlo.
sudo cp -a googletest/include/gtest /usr/include
sudo cp -a googlemock/gtest/libgtest_main.so googlemock/gtest/libgtest.so /usr/lib/
# The easiest/best way:
make install # Note: before v1.11 this can be dangerous and is not supported
4. Aggiorna la cache del linker
... e controlla se GNU Linker conosce le librerie
sudo ldconfig -v | grep gtest
Se l'output è simile a questo:
libgtest.so.0 -> libgtest.so.0.0.0
libgtest_main.so.0 -> libgtest_main.so.0.0.0
allora va tutto bene.
gTestframework è ora pronto per l'uso. Non dimenticare di collegare il tuo progetto alla libreria impostando -lgtest
come flag linker e facoltativamente, se non hai scritto la tua mainroutine di test, l'esplicito -lgtest_main
bandiera.
Da qui in poi potresti voler andare alla documentazione di Google e ai vecchi documenti sul framework per sapere come funziona. Buona programmazione!
Modifica: Funziona anche per OS X! Vedi "Come configurare correttamente googleTest su OS X"
Consentitemi di rispondere a questa domanda in modo specifico per gli utenti di Ubuntu.Innanzitutto, installate il pacchetto di sviluppo gtest.
sudo apt-get install libgtest-dev
Si noti che questo pacchetto installa solo i file sorgente. Devi compilare tu stesso il codice per creare i file di libreria necessari. Questi file sorgente dovrebbero trovarsi in /usr/src/gtest. Passare a questa cartella e utilizzare cmake per compilare la libreria:
sudo apt-get install cmake # install cmake
cd /usr/src/gtest
sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo make install
Ora per compilare i tuoi programmi che usano gtest, devi collegarlo con:
-lgtest -lgtest_main -lpthread
Questo ha funzionato perfettamente per me su Ubuntu 14.04LTS.