Red de conocimiento informático - Material del sitio web - Cómo usar cmake para compilar OpenCV 3.1.0 opencv

Cómo usar cmake para compilar OpenCV 3.1.0 opencv

Cree una nueva carpeta en un disco de su máquina, por ejemplo, mi ruta completa aquí es: D:\CMake\CMake-Study\HelloCMake; luego cree un archivo HelloCMake.cpp en la carpeta HelloCMake, el código es el siguiente:

#include < iostream>

int main()

{

{

stint main(), esta es una nueva carpeta en el sistema opencv OpenCV 3.1.0, luego cree la nueva carpeta. iostream>

int main()

{

std::cout<< "Estudien CMake juntos - ¡Hola CMake!"<< std::endl;

return 0;

}

Luego cree el archivo CMakeLists.txt en la carpeta HelloCMake. Tenga en cuenta que el nombre del archivo no puede ser otro, debe llamarse con este nombre. El contenido del archivo es el siguiente:

cmake_minimum_required(VERSIÓN 2.6)

proyecto(HelloCmake)

add_executable(HelloCMake hellocmake.cpp)

Luego, cree una nueva carpeta llamada HelloCMake-bin en el mismo directorio que HelloCMake. La ruta completa en mi máquina es D:\CMake\CMake-Study\HelloCMake-bin, por lo que puede hacerla coincidir con su propia ruta de directorio.

Luego abra el programa CMake, la interfaz es como se muestra en la Figura (1):

Figura (1)

Figura (2)

Proporcione la ruta completa de los archivos CMakeLists.txt y HelloCMake.cpp en "Dónde está el código fuente", proporcione la ruta completa del último directorio HelloCMake-bin en "Dónde crear el archivo binario" y luego presione Cofigure, la interfaz es la siguiente, como se muestra en la Figura (2).

Después de la configuración, presione Generar nuevamente hasta que todas las opciones rojas estén atenuadas. La interfaz se muestra en la Figura (3). Luego abra HelloCMake-bin y encontrará que muchos archivos se generan automáticamente en la carpeta vacía original, como se muestra en la Figura (4).

Figura (3)

Figura (4)

En este punto, la construcción del proyecto está completa. Abra HelloCMake.sln en el directorio HelloCMake-bin. Hay tres proyectos en él, respectivamente: ALL_BUILD; HelloCMake_BUILD; HelloCMake_BUILD: ALL_BUILD; Las funciones de estos tres proyectos son aproximadamente las siguientes (solo comprensión personal): HelloCMake necesita construir el proyecto; ALL_BUILD es administrar todo el proyecto; ZERO_CHECK es monitorear los cambios en el archivo CMakeLists.txt en el proyecto; en tiempo real. Una vez que CMakeLists.txt es Si hay algún cambio en el contenido, ZERO_CHECK le indicará al compilador que VERIFIQUE y le indicará que reconstruya todo el entorno del proyecto. Por lo tanto, primero puede cerrar el proyecto, abrir el archivo CMakeLists.txt, modificar el contenido y seguir los pasos anteriores para pasar por CMake. También puede modificar el archivo CMakeLists.txt en un entorno de compilación (como VS2008) y luego directamente F7 para compilar el proyecto. Si elige este último, encontrará el fenómeno que se muestra en la Figura (5).

Debido a que cambió el contenido de CMakeLists.txt, el entorno del proyecto debe reconstruirse y configurarse. Por lo tanto, se deben cargar nuevas configuraciones del entorno del proyecto. Haga clic en "Sí", luego haga clic en "Recargar" (Recargar.

Otra pregunta que suelen hacer algunos niños es: ¿qué debo hacer cuando aparece la interfaz que se muestra en la Figura (6)? ¿Qué se puede hacer? El mensaje de la interfaz es muy claro, simplemente especifique la ruta del archivo ejecutable y luego haga clic en Aceptar. La razón de esto es que no ha configurado el proyecto que genera el archivo ejecutable exe como proyecto de inicio, como se muestra en la Figura (6). ), encontrará que el nombre del proyecto ALL_BUILD se muestra en negrita, lo que significa que es un proyecto de inicio o es un proyecto donde generó un archivo ejecutable exe, como HelloCMake aquí, haga clic derecho en el proyecto de la derecha. Haga clic en HelloCMake ->Establecer como proyecto de inicio y la interfaz que se muestra en la Figura (6) no aparecerá.

Bien, ahora que hemos introducido estas cosas triviales, echemos un vistazo a CMakeLists.txt. ¿Qué significa el código que contiene? Explique cada fragmento de código. Si hay algún problema, asegúrese de informarme.

Figura (5)

Figura (6)

Enumere el contenido de CMakeLists.txt nuevamente:

1. cmake_minimum_required(VERSIÓN 2.6)

2. proyecto(HelloCmake)

3. add_executable(HelloCMake hellocmake.cpp )

Línea 1, cmake_minimum_required (VERSIÓN 2.6) Este es un requisito de la versión CMake. Básicamente, cada archivo CMakeLists.txt tendrá este código cmake_minimum_required es un comando en cmake. Puede estar en mayúsculas o. minúsculas. La palabra clave VERSIÓN debe estar en mayúsculas y no se puede omitir; 2.6 es el número de versión de CMake y la versión actual es 2.8.3.

En la línea 2, el proyecto (HelloCmake) también es un comando de CMake. , el parámetro HelloCMake es el nombre del proyecto que se generará, en otras palabras, es el nombre del archivo del proyecto generado, como ***.sln o ***.dsw. Línea 3, add_executable (HelloCMake hellocmake .cpp), add_executable también es un comando CMake, que vincula archivos fuente relacionados y luego genera un archivo ejecutable exe. Esto es lo que hace este comando. El primer parámetro es el nombre del archivo exe generado. , que generalmente es el mismo que el nombre del proyecto en el proyecto. Los archivos compilados de esta manera son HelloCMake.sln y HelloCMake.exe. Por supuesto, pueden ser diferentes. Hay una lista de parámetros después de add_executable(), que pueden ser varios nombres de archivos para compilar, separados por espacios o retornos de carro. Por ejemplo, puede agregar:

add_executable(HelloCMake hellocmake.cpp hellocmake.h)

Hasta ahora, los tres comandos más utilizados en CMake son cmake_minimum_required() proyecto;

Introducción completada.