Mi necesidad es simple. Tengo que compilar y usar googletest en Windows usando MinGW con msys. ¿Alguien tiene alguna experiencia haciendo esto?¿Cómo compilar googletest en Windows usando mingw con msys?
Gracias por responder.
Mi necesidad es simple. Tengo que compilar y usar googletest en Windows usando MinGW con msys. ¿Alguien tiene alguna experiencia haciendo esto?¿Cómo compilar googletest en Windows usando mingw con msys?
Gracias por responder.
Me tomó un tiempo pero lo descubrí. Aquí está la guía para cualquier persona que enfrenta el mismo problema.
Para poder compilar GoogleTest en Windows siga estas instrucciones:
que se supone que tiene MinGW con MSYS istalled.
Descargue e instale CMake desde el sitio oficial http://www.cmake.org/. Utilice la versión del instalador de Win32 . Una vez que haya completado el proceso de instalación, copie los archivos ejecutables de "xxx/CMake/bin" a "xxx/MinWG/bin".
Descargue e instale Python desde http://www.python.org/. De nuevo, el instalador de Windows hace bien el trabajo . Una vez que haya completado el proceso de instalación, copie la carpeta de python "python.exe" en "xxx/MinWG/bin".
Descargue el último GoogleTest estable desde http://code.google.com/p/googletest/ y descomprímalo en alguna carpeta.
Ejecute el terminal MSYS y ejecute los siguientes comandos.
cd xxx/gtest-x.x.x
cmake -G "MSYS Makefiles"
make
Si tiene errores de compilación de pthread siga these instrucciones.
Copie la carpeta de inclusión "xxx/gtest-x.x.x/include" en su MinGW gcc include. Copie los archivos de la biblioteca "xxx/gtest-x.x.x/*. A" en su MinGW gcc lib.
Cuando compile las pruebas agregue el parámetro "-lgtest" a gcc.
EDITAR comentaristas tienen razón. El manejo de los archivos ejecutables funcionó para mí, pero en general no es una buena práctica. Intenta usar un symbolic link en su lugar.
Como alternativa, también es posible construir Googletest utilizando la marca MSYS/Mingw habitual.
Así que aquí es mi forma alternativa:
Asegúrese MSys/MingW está instalado en el Windows y el entorno PATH se establece en que
Abra una ventana de cmd - puede establecer el PATH explícitamente aquí, así
CD en el directorio descomprimido googletest
de configuración de llamadas wi th sh (parte de MSys): sh configure
Debe crearse la llamada make
->libgtest.a
. Se coloca en el directorio de googletest-lib/.libs
subdirectorio
Ver README de googletest de cómo integrar la libgtest.a
a su sistema. También vea Googletest primer en el googletest wiki de cómo compilar. Alternativamente, especifique la ruta de la biblioteca para gcc y agregue -lgtest
para vincularlo con el ejecutable de su proyecto de prueba.
Al utilizar ASSERT_DEATH
macro para comprobar si afirma en su código de prueba (es decir, afirma en su lib o aplicación, no en googletest), llame SetErrorMode
- principal ejemplo:
#include <windows.h>
#include "gtest/gtest.h"
int main (int argc, char** argv)
{
// this prevents annoying error message boxes popping up
// when assert is called in your program code
SetErrorMode(SEM_NOGPFAULTERRORBOX);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Usted don' Necesito copiar los binarios siempre que los tenga en su camino. Instala Python y CMake. Prueba de ellos en sus MSYS (consola MinGW)
which cmake
which python
Si ves el camino, entonces usted tiene los binarios. Si no fuera así, su trayectoria a su variables ambientales> PATH o simplemente actualizar dentro MSYS (rutas de instalación de actualización si es necesario)
export PATH=$PATH:/c/Program Files (x86)/CMake/bin/cmake.exe:/c/Python27/python.exe
Entonces se puede construir como se sugiere:
cd xxx/gtest-x.x.x
cmake -G "MSYS Makefiles"
make
prueba si todo funciona:
cd make
make
./sample1_unittest.exe
Para construir libgtest.a sin cmake/pitón, pero sólo utilizando MinGW hacen, GTEST ahora tiene una carpeta 'hacer' con un makefile viejo y simple en él.
La biblioteca creada es una biblioteca estática completa sin DLL generado.
Eso debería ser todo.
Por cierto, esto también funciona para construir googlemock, solo ingrese la carpeta googlemock en lugar de googletest, y siga el mismo procedimiento.
gracias @ jesper-matthiesen funcionó. En caso de que alguien se enfrente al error de ld.exe no pudo encontrar lpthread. Intente ejecutar mingw-get install libpthreadgc-dev como se menciona en el comentario de [link] (http://mingw-users.1079350.n2.nabble.com/GCC-doesn-t-work-quot-ld-exe-cannot- find-lpthread-quot-td7584243.html). Gracias –
Por favor, describa lo que está pasando mal. – LumpN
Tengo un progreso. Parece que no se puede instalar sin una pitón que no tengo. Me apetece resolverlo ahora. –