GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare googleTest come libreria condivisa su Linux

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.


Linux
  1. Come impostare o modificare il nome host del sistema in Linux

  2. Come installare la libreria Ncurses in Linux

  3. Come configurare le jail chroot di Linux

  4. Come inizializzare una libreria condivisa su Linux

  5. Come fare in modo che un ritardo di libreria condivisa venga caricato su Linux

Come impostare la pianificazione dei torrent su Linux

Come impostare o modificare il nome host su Linux

Come modificare o impostare la password utente in Linux

Come installare la libreria Python PyBrain in Linux

Come configurare un firewall con GUFW su Linux

Come impostare data e ora su Linux