Pourquoi aucun fichier de bibliothèque installé pour google test?

54

Le paquetage libgtest-dev semble n'installer que les fichiers d'en-tête sur le système, mais pas les bibliothèques statiques et dynamiques à installer sous / usr / lib.

Est-ce un bug?

Eddyxu
la source
2
Comme c'est intentionnel, ce n'est pas un bug; pourtant la situation est complètement déroutante. J'ai donc déposé un rapport de bogue à l' adresse bugs.debian.org/cgi-bin/bugreport.cgi?bug=802587 .
Joachim W
ugh ... le framework de test de boost "fonctionne-t-il"?
Andrew Wagner

Réponses:

70

Est-ce un bug?

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

gtest (1.6.0-1ubuntu2) précis; urgence = faible

  * Arrêtez de distribuer la bibliothèque statique (bien que vous la construisiez toujours, pour assurer gtest
    travaux). Upstream recommande de ne pas expédier la bibliothèque, mais uniquement
    la source. (Voir: http://code.google.com/p/googletest/wiki/FAQ)
    Le mainteneur Debian a l'intention de faire cela aussi (voir BTS: 639795); fais le dans
    Ubuntu maintenant pour répondre aux exigences MIR.

Construire des bibliothèques statiques

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

Modifier:

Les noms ont légèrement changé au fil des ans, bien que 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
ish
la source
Merci! J'ai construit les bibliothèques de cette façon. Je viens de penser que cela pourrait ne pas être une approche officielle pour un paquet .deb.
Eddyxu
1
Le Google fonctionne de manière mystérieuse! :) Content d'avoir aidé.
Ish
2
Version copier-coller:cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ && cd -
exique
2
En fait, la raison décrite ici peut être appliquée à n’importe quelle bibliothèque. Par exemple, si boost est lié à libstdc ++ et que vous souhaitez utiliser libc ++, vous devez le recompiler à partir de sources. C'est donc étrange, à
mon humble avis
7
C'est paniquer asinine. Pourquoi diable n'enverraient-ils pas la bibliothèque à la source? Ou du moins, installez-le automatiquement.
Faux nom
23

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/
Wojciech Migda
la source
0

Notez que la méthode recommandée par Google consiste à faire en sorte que votre projet existant récupère le code source de gtest.

Alternativement, lorsque vous utilisez avec CMake, vous pouvez utiliser add_subdirectorypour ajouter la source gtest fournie avec libgtest-develle car elle est utilisée par défaut /usr/src/googletest.

Ce qui suit fonctionnera

add_subdirectory(/usr/src/googletest gtest)
target_link_libraries(your_executable gtest)
Rufus
la source