Estoy aprendiendo OpenCV usando Learning OpenCV libro.Makefile para compilar código de OpenCV en C++ en Ubuntu/Linux
Un problema que enfrento al compilar el código es que tengo que escribir un comando largo para compilar y obtener el ejecutable.
Este es el comando que estoy utilizando
g++ `pkg-config –cflags opencv` file_name.cpp -o output_file `pkg-config –libs opencv`
no soy Hacer experto pero creo que puedo eliminar escribir ese comando largo usando hacen. Antes de eso, debería explicar mi flujo de trabajo. He creado un directorio llamado opencv en mi directorio personal (~/opencv/
). Estoy leyendo el libro sección por sección y codificando los ejemplos o ejercicios en nuevos archivos de código fuente cpp en ese directorio. Así que no sé los nombres de los archivos antes de la mano.
Ahora lo que quiero hacer que hacer es,
Suponga que he codificado un nuevo archivo llamado facedetect.cpp
en mi directorio opencv
, y si llamo a hacer como esto
make facedetect
entonces quiero hacer para ejecutar el siguiente comando para mí
g++ `pkg-config --cflags opencv` facedetect.cpp -o facedetect `pkg-config --libs opencv`
para que cada vez que hago un nuevo archivo llamado abc.cpp, voy a ejecutar linda make abc
para que pueda funcionar
$ ./abc
en mi línea de comandos para probar mi abc.cpp
Por favor de hacer que el archivo para que pueda salvar a la frustración de escribir ese comando tiempo cada vez.
PD: He buscado en Google en busca de ayuda en esto y encontrado this sobre el uso de CMake pero no podía entender lo que hace. Amablemente también explique cómo puedo usar CMake para la misma tarea.
Parece que solamente 'g ++ $ (CFLAGS) -o $ @ $ <$ (LIBS)' va a funcionar. Pero creo que es una cosa abierta. Gracias por el Makefile. ¿Puede explicar qué significa eso o dar un buen recurso para aprender sobre Make – SPV
? Buenos recursos sobre make: [make manual] (http://www.gnu.org/software/make/manual/make.html). No es tan aterrador y difícil de entender como parece. – morynicz
Gracias Siva Prasad Varma, de hecho fue el ** orden ** de los argumentos. '$ (LIBS)' ** debe ir al final del comando de compilación **, ¡o los ejemplos de OpenCV no se compilarán! – cosimo