Me tomó un tiempo darme cuenta de esto porque el "make install" normal se eliminó y no uso cmake. Aquí está mi experiencia para compartir. En el trabajo, no tengo acceso de raíz en Linux, así que instalé el marco de prueba de Google en mi directorio de inicio:~/usr/gtest/
.
Para instalar el paquete en ~/usr/gtest/ como bibliotecas compartidas, junto con una compilación de ejemplo:
$ 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
Para validar la instalación, utilice el siguiente test.c como ejemplo de prueba simple:
#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();
}
Para compilar:
$ 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
¡Antes de comenzar, asegúrese de haber leído y entendido esta nota de Google! Este tutorial facilita el uso de gtest, pero puede presentar errores desagradables.
1. Obtenga el marco de prueba de Google
wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz
O conseguirlo a mano. No mantendré este pequeño instructivo, así que si lo encontró y los enlaces están desactualizados, siéntase libre de editarlo.
2. Desempaquetar y compilar la prueba de Google
tar xf release-1.8.0.tar.gz
cd googletest-release-1.8.0
cmake -DBUILD_SHARED_LIBS=ON .
make
3. "Instala" los encabezados y bibliotecas en tu sistema.
Este paso puede diferir de una distribución a otra, así que asegúrese de copiar los encabezados y las bibliotecas en el directorio correcto. Lo logré comprobando dónde se encontraban las antiguas gtest libs de Debian. Pero estoy seguro de que hay mejores formas de hacerlo.
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. Actualizar el caché del enlazador
... y verifique si GNU Linker conoce las librerías
sudo ldconfig -v | grep gtest
Si la salida se ve así:
libgtest.so.0 -> libgtest.so.0.0.0
libgtest_main.so.0 -> libgtest_main.so.0.0.0
entonces todo está bien.
gTestframework ahora está listo para usar. Simplemente no olvide vincular su proyecto con la biblioteca configurando -lgtest
como indicador del enlazador y, opcionalmente, si no escribió su propia rutina principal de prueba, el -lgtest_main
explícito bandera.
De aquí en adelante, es posible que desee consultar la documentación de Google y los documentos antiguos sobre el marco para aprender cómo funciona. ¡Feliz codificación!
Editar: ¡Esto también funciona para OS X! Consulte "Cómo configurar correctamente googleTest en OS X"
Permítanme responder esto específicamente para usuarios de ubuntu. Primero comience instalando el paquete de desarrollo gtest.
sudo apt-get install libgtest-dev
Tenga en cuenta que este paquete solo instala archivos fuente. Debe compilar el código usted mismo para crear los archivos de biblioteca necesarios. Estos archivos fuente deben ubicarse en /usr/src/gtest. Busque esta carpeta y use cmake para compilar la biblioteca:
sudo apt-get install cmake # install cmake
cd /usr/src/gtest
sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo make install
Ahora, para compilar sus programas que usan gtest, debe vincularlo con:
-lgtest -lgtest_main -lpthread
Esto funcionó perfectamente para mí en Ubuntu 14.04LTS.