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?

eddyxu
quelle
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
ish
quelle
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/
Wojciech Migda
quelle
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)
Rufus
quelle