GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer googleTest en tant que bibliothèque partagée sous Linux

Il m'a fallu un certain temps pour comprendre cela car le "make install" normal a été supprimé et je n'utilise pas cmake. Voici mon expérience à partager. Au travail, je n'ai pas d'accès root sur Linux, j'ai donc installé le framework de test Google sous mon répertoire personnel :~/usr/gtest/ .

Pour installer le paquet dans ~/usr/gtest/ en tant que bibliothèques partagées, ainsi qu'un exemple de construction :

$ 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

Pour valider l'installation, utilisez le test.c suivant comme exemple de test simple :

    #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();
    }

Pour compiler :

    $ 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 

Avant de commencer, assurez-vous d'avoir lu et compris cette note de Google ! Ce tutoriel facilite l'utilisation de gtest, mais peut introduire des bugs désagréables.

1. Obtenir le framework googletest

wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz

Ou prenez-le à la main. Je ne maintiendrai pas ce petit tutoriel, donc si vous êtes tombé dessus et que les liens sont obsolètes, n'hésitez pas à le modifier.

2. Décompressez et construisez le test Google

tar xf release-1.8.0.tar.gz
cd googletest-release-1.8.0
cmake -DBUILD_SHARED_LIBS=ON .
make

3. "Installez" les en-têtes et les bibliothèques sur votre système.

Cette étape peut différer d'une distribution à l'autre, alors assurez-vous de copier les en-têtes et les bibliothèques dans le bon répertoire. J'ai accompli cela en vérifiant où se trouvaient les anciennes bibliothèques gtest de Debian. Mais je suis sûr qu'il existe de meilleures façons de le faire.

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. Mettre à jour le cache du linker

... et vérifiez si le GNU Linker connaît les libs

sudo ldconfig -v | grep gtest

Si la sortie ressemble à ceci :

libgtest.so.0 -> libgtest.so.0.0.0
libgtest_main.so.0 -> libgtest_main.so.0.0.0

alors tout va bien.

gTestframework est maintenant prêt à être utilisé. N'oubliez pas de lier votre projet à la bibliothèque en définissant -lgtest comme indicateur de lien et éventuellement, si vous n'avez pas écrit votre propre routine principale de test, le -lgtest_main explicite drapeau.

À partir de là, vous voudrez peut-être consulter la documentation de Google et les anciennes documentations sur le framework pour savoir comment cela fonctionne. Bon codage !

Modifier : Cela fonctionne aussi pour OS X! Voir "Comment configurer correctement googleTest sur OS X"


Permettez-moi de répondre spécifiquement aux utilisateurs d'ubuntu. Commencez par installer le package de développement gtest.

sudo apt-get install libgtest-dev

Notez que ce package installe uniquement les fichiers source. Vous devez compiler le code vous-même pour créer les fichiers de bibliothèque nécessaires. Ces fichiers source doivent se trouver dans /usr/src/gtest. Accédez à ce dossier et utilisez cmake pour compiler la bibliothèque :

sudo apt-get install cmake # install cmake
cd /usr/src/gtest
sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo make install

Maintenant, pour compiler vos programmes qui utilisent gtest, vous devez le lier avec :

-lgtest -lgtest_main -lpthread

Cela a parfaitement fonctionné pour moi sur Ubuntu 14.04LTS.


Linux
  1. Comment définir ou modifier le nom d'hôte du système sous Linux

  2. Comment installer la bibliothèque Ncurses sous Linux

  3. Comment configurer des jails chroot Linux

  4. Comment définir la variable $Path sous Linux

  5. Introduction aux bibliothèques partagées Linux (comment créer des bibliothèques partagées)

Comment configurer la planification torrent sur Linux

Comment définir ou modifier le nom d'hôte sous Linux

Comment changer ou définir un mot de passe utilisateur sous Linux

Comment installer la bibliothèque Python PyBrain sous Linux

Comment configurer un pare-feu avec GUFW sous Linux

Comment définir la date et l'heure sous Linux