59 votes

Pourquoi aucun fichier de bibliothèque n'est installé pour le test google ?

Le paquet libgtest-dev semble seulement installer les fichiers d'en-tête sur le système, mais pas les bibliothèques statiques et dynamiques qui devraient être installées sous /usr/lib.

C'est un bug ?

72voto

ish Points 134738

C'est un bug ?

Non, c'est délibéré :

gtest (1.6.0-1ubuntu2) precise; urgency=low

  \* Stop distributing static library (although still build it, to ensure gtest
    works).  Upstream recommends against shipping the libary at all, just the
    source. (See: http://code.google.com/p/googletest/wiki/FAQ)
    The Debian maintainer plans to do this also (see BTS: 639795); do it in
    Ubuntu now to fulfil MIR requirements.

Pour créer des bibliothèques statiques

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

Edit :

Les noms ont légèrement changé au fil des ans, mais le processus reste le même. Dans 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

23voto

Wojciech Migda Points 476

En améliorant la réponse d'izx, j'aurais utilisé cmake de cette façon :

sudo cmake -DCMAKE_BUILD_TYPE=RELEASE .

et je tenterais une construction hors-source :

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

1voto

Rufus Points 605

Notez que le recommandé La méthode utilisée par google est de faire en sorte que votre projet existant tire le code source de gtest.

Alternativement, en utilisant CMake, vous pouvez utiliser add_subdirectory pour ajouter les sources de gtest qui sont fournies avec libgtest-dev puisqu'il va par défaut dans /usr/src/googletest .

Les éléments suivants fonctionneront

add_subdirectory(/usr/src/googletest gtest)
target_link_libraries(your_executable gtest)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X