Ich habe eine Weile gebraucht, um das herauszufinden, weil das normale "make install" entfernt wurde und ich cmake nicht verwende. Hier ist meine Erfahrung zu teilen. Bei der Arbeit habe ich keinen Root-Zugriff auf Linux, also habe ich das Google-Testframework in meinem Home-Verzeichnis installiert:~/usr/gtest/
.
So installieren Sie das Paket in ~/usr/gtest/ als gemeinsam genutzte Bibliotheken, zusammen mit dem Beispiel-Build:
$ 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
Um die Installation zu validieren, verwenden Sie die folgende test.c als einfaches Testbeispiel:
#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();
}
Kompilieren:
$ 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
Bevor Sie beginnen, stellen Sie sicher, dass Sie diesen Hinweis von Google gelesen und verstanden haben! Dieses Tutorial macht die Verwendung von gtest einfach, kann aber böse Fehler einführen.
1. Holen Sie sich das Googletest-Framework
wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz
Oder holen Sie es von Hand. Ich werde diese kleine Anleitung nicht pflegen, wenn Sie also darauf gestoßen sind und die Links veraltet sind, können Sie sie gerne bearbeiten.
2. Google Test entpacken und erstellen
tar xf release-1.8.0.tar.gz
cd googletest-release-1.8.0
cmake -DBUILD_SHARED_LIBS=ON .
make
3. "Installieren" Sie die Header und Libs auf Ihrem System.
Dieser Schritt kann sich von Distribution zu Distribution unterscheiden, stellen Sie also sicher, dass Sie die Header und Bibliotheken in das richtige Verzeichnis kopieren. Ich habe dies erreicht, indem ich überprüft habe, wo sich frühere gtest-Bibliotheken von Debian befanden. Aber ich bin mir sicher, dass es dafür bessere Möglichkeiten gibt.
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. Aktualisieren Sie den Cache des Linkers
... und prüfen, ob der GNU Linker die Bibliotheken kennt
sudo ldconfig -v | grep gtest
Wenn die Ausgabe so aussieht:
libgtest.so.0 -> libgtest.so.0.0.0
libgtest_main.so.0 -> libgtest_main.so.0.0.0
dann ist alles gut.
gTestframework ist jetzt einsatzbereit. Vergessen Sie nur nicht, Ihr Projekt mit der Bibliothek zu verknüpfen, indem Sie -lgtest
setzen als Linker-Flag und optional, wenn Sie keine eigene Test-Hauptroutine geschrieben haben, die explizite -lgtest_main
Flagge.
Von hier an möchten Sie vielleicht zur Google-Dokumentation und den alten Dokumenten über das Framework gehen, um zu erfahren, wie es funktioniert. Viel Spaß beim Programmieren!
Bearbeiten: Dies funktioniert auch für OS X! Siehe "So richten Sie googleTest unter OS X richtig ein"
Lassen Sie mich dies speziell für Ubuntu-Benutzer beantworten. Beginnen Sie zunächst mit der Installation des gtest-Entwicklungspakets.
sudo apt-get install libgtest-dev
Beachten Sie, dass dieses Paket nur Quelldateien installiert. Sie müssen den Code selbst kompilieren, um die erforderlichen Bibliotheksdateien zu erstellen. Diese Quelldateien sollten sich unter /usr/src/gtest befinden. Navigieren Sie zu diesem Ordner und verwenden Sie cmake, um die Bibliothek zu kompilieren:
sudo apt-get install cmake # install cmake
cd /usr/src/gtest
sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo make install
Um nun Ihre Programme zu kompilieren, die gtest verwenden, müssen Sie es verknüpfen mit:
-lgtest -lgtest_main -lpthread
Dies funktionierte perfekt für mich unter Ubuntu 14.04LTS.