Warum keine Bibliotheksdateien für Google Test installiert?


54

Das libgtest-dev-Paket scheint nur Header-Dateien auf dem System zu installieren, nicht jedoch die statischen und dynamischen Bibliotheken, die unter / usr / lib installiert werden sollten.

Ist es ein Bug?


2
Da dies beabsichtigt ist, handelt es sich nicht um einen Fehler. Die Situation ist jedoch äußerst verwirrend. Ich habe daher einen Fehlerbericht unter bugs.debian.org/cgi-bin/bugreport.cgi?bug=802587 eingereicht .
— Joachim W

ugh ... funktioniert Boosts Test-Framework "nur"?
— Andrew Wagner

Antworten:


70

Ist es ein Bug?

Nein, es ist absichtlich:

gtest (1.6.0-1ubuntu2) genau; Dringlichkeit = niedrig

  * Stoppen Sie die Verteilung der statischen Bibliothek (obwohl sie noch erstellt wird, um gtest zu gewährleisten
    funktioniert). Upstream rät davon ab, die Bibliothek überhaupt zu versenden, nur die
    Quelle. (Siehe: http://code.google.com/p/googletest/wiki/FAQ)
    Der Debian-Betreuer plant, dies auch zu tun (siehe BTS: 639795); mach es in
    Ubuntu jetzt MIR-Anforderungen zu erfüllen.

Statische Bibliotheken erstellen

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

Bearbeiten:

Die Namen haben sich im Laufe der Jahre leicht geändert, obwohl der Prozess derselbe bleibt. In 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

Vielen Dank! Ich habe die Bibliotheken auf diese Weise aufgebaut. Dachte nur, dass es möglicherweise kein offizieller Ansatz für ein .deb-Paket ist.
— Eddyxu

1
Google arbeitet auf mysteriöse Weise! :) Ich bin froh, dass es geholfen hat.
— ish

2
Copy-Paste-Version:cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libg* /usr/lib/ && cd -
— exic

2
Der hier beschriebene Grund kann auf jede Bibliothek angewendet werden . Wenn boost beispielsweise mit libstdc ++ verknüpft ist und Sie libc ++ verwenden möchten, müssen Sie boost aus den Quellen neu kompilieren. Es ist also merkwürdig, IMHO
— ruslo

7
Das ist verdammt dumm. Warum zum Teufel sollten sie die Bibliothek nicht für die Quelle versenden? Oder lassen Sie das Paket zumindest automatisch installieren.
— Fake Name

23

Um die Antwort von izx zu verbessern, hätte ich cmake folgendermaßen verwendet:

sudo cmake -DCMAKE_BUILD_TYPE=RELEASE .

und ich würde versuchen, ein Out-of-Source-Build:

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

0

Beachten Sie, dass die von Google empfohlene Methode darin besteht, dass Ihr vorhandenes Projekt den gtest-Quellcode einfügt.

Wenn Sie CMake verwenden, können Sie alternativ add_subdirectorydie mitgelieferte gtest-Quelle hinzufügen, libgtest-devda sie standardmäßig in das Verzeichnis aufgenommen wird /usr/src/googletest.

Folgendes wird funktionieren

add_subdirectory(/usr/src/googletest gtest)
target_link_libraries(your_executable gtest)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.