tengo un archivo con sólo importa:

#include <iostream>
#include <stdio.h>

#include "cxcore.hpp"
#include "highgui.hpp"

using namespace cv;
using namespace std;

int main( int argc, char** argv )
{

}

y voy a tratar de compilar con g++ -I/usr/include/opencv-lopencv -lm m.cpp

pero conseguir un ápice de error:

De archivo incluido desde /usr/include/opencv/cxcore.ch:46,
de m.cpp:5:
/usr/include/opencv/cxmisc.h:214: error: se esperaba constructor, destructor, o la conversión de tipos antes de que el ‘vacío’
/usr/include/opencv/cxmisc.h:220: error: se esperaba constructor, destructor, o el tipo de conversión, antes de ‘int’
/usr/include/opencv/cxmisc.h:226: error: ‘CV_INLINE’ no es el nombre de un tipo de
/usr/include/opencv/cxmisc.h:516: error: ‘CV_DEPTH_MAX’ no se declaró en este ámbito
/usr/include/opencv/cxmisc.h:522: error: ‘CV_DEPTH_MAX’ no se declaró en este ámbito
/usr/include/opencv/cxmisc.h:522: error: ‘CV_CN_MAX’ no se declaró en este ámbito
En el archivo incluido desde m.cpp:5:
/usr/include/opencv/cxcore.ch:70: error: declaración de la plantilla de cv::CV_EXPORTS cv::Size_’
/usr/include/opencv/cxcore.ch:71: error: declaración de la plantilla de cv::CV_EXPORTS cv::Point_’
/usr/include/opencv/cxcore.ch:72: error: declaración de la plantilla de cv::CV_EXPORTS cv::Rect_’
/usr/include/opencv/cxcore.ch:77: error: se esperaba de inicializador antes de ‘fromUtf16’
/usr/include/opencv/cxcore.ch:78: error: se esperaba de inicializador antes de ‘toUtf16’
/usr/include/opencv/cxcore.ch:80: error: se esperaba de inicializador antes de que el ‘formato’
/usr/include/opencv/cxcore.ch:82: error: se esperaba de inicializador de antes ‘:’ token
m.cpp:38: error: se esperaba ‘}’ al final de la entrada

este es mi copencv lib contenido:

[email protected]:~$ ls /usr/include/opencv/
cvaux.h    cvcompat.h  cv.hpp        cvtypes.h  cvvidsurv.hpp  cxcore.h    cxerror.h  cxmat.hpp  cxoperations.hpp  highgui.h    ml.h
cvaux.hpp  cv.h        cvinternal.h  cvver.h    cvwimage.h     cxcore.hpp  cxflann.h  cxmisc.h   cxtypes.h         highgui.hpp

estoy en ubuntu 10.10

InformationsquelleAutor nkint | 2012-02-01

4 Comentarios

  1. 53

    Necesarias para incluir los encabezados -I (i mayúscula) y las bibliotecas -l (L minúscula).

    Sobre la nueva OpenCV versiones que debe hacer:

    #include <cv.h>
    #include <highgui.h>

    Y, a continuación, intente compilar con:

    g++ m.cpp -o app `pkg-config --cflags --libs opencv`

    Nota: si se ejecuta sólo pkg-config --cflags --libs opencv en la línea de comandos que usted va a ver los caminos y de las bibliotecas se debe incluir en el g++ línea de comandos.

    • suspiro. esto compilar pero remaind mí en este problema stackoverflow.com/q/9088228/433685
    • (problema que he pensado para resolver cambiando el encabezado..)
    • Siempre olvido el nombre de la pkg-config utility. Gracias por la solución más simple!
    • Supongamos que tengo una versión de openCV instalado y construido en un directorio (la versión global es diferente). ¿Cómo debo cambiar el comando que has publicado para compilar y construir mi proyecto con la nueva versión local de openCV?
    • Ejecutar pkg-config --cflags --libs opencv para ver los parámetros exactos de la versión global pasa a g++. A continuación, sólo tienes que copiar el mismo banderas y el uso de su local de caminos en su lugar. Simple!
  2. 6

    si su entorno de desarrollo no tiene pkg-config y debido a esto la aceptado respuesta por karlphilip no es práctico, o, usted necesita saber el conjunto mínimo de bibliotecas necesarias para vincular su aplicación, a continuación, suponiendo código como

    #include <cv.h>
    #include <highgui.h>
    
    int main()
    {
        return 0;
    }

    puede agregar la biblioteca de los argumentos de la siguiente lista secuencialmente desde la parte superior hasta encontrar el conjunto mínimo de argumentos que usted necesita:

     -lopencv_core 
    -lopencv_imgproc 
    -lopencv_highgui 
    -lopencv_ml 
    -lopencv_video 
    -lopencv_features2d 
    -lopencv_calib3d 
    -lopencv_objdetect 
    -lopencv_contrib 
    -lopencv_legacy 
    -lopencv_flann 
    

    Por ejemplo, el código fuente de C aparece en la parte superior de este post compila y enlaces sin problemas con sólo

    gcc hello.c -o hello \
        -I /usr/include/opencv \
        -L /usr/lib \
        -lopencv_core \
        -lopencv_imgproc

    mi antiguo x86_64 Ubuntu 12.04 cuadro.

    Suponiendo que el código de C++ tales como

    #include "core/core.hpp"
    #include "highgui/highgui.hpp"
    
    using namespace cv;
    using namespace std;
    
    int main( int argc, char** argv )
    {
        return 0;
    }

    a continuación, compile y enlace con

    g++ hello.cpp -o hello \
        -I /usr/include/opencv2 \
        -L /usr/lib \
        -lopencv_core \
        -lopencv_imgproc
    • He intentado compilar el g++ versión de este chico del video youtube.com/watch?v=cgo0UitHfp8 en la línea de comandos porque quería probarlo sin VS. Compila, pero cuando ejecuto el programa no pasa nada.
    • No importa, Es que falta un archivo dll de windows problema. Gracias por su respuesta anterior, aunque.
    • Necesito agregar opencv_contrib pero no está en la lista de paquetes que puedo ver es usando el comando pkg-config –libs opencv.
  3. 2

    Le sugiero que utilice CMake para compilar OpenCV con G++, de esta manera es la más adecuada, creo.

    cmake_minimum_required(VERSION 3.1)
    project(YOUR_PROJECT_NAME)
    
    set(CMAKE_GXX_FLAGS "-Wall -Wextra -Wconversion  -pedantic -std=gnu11")
    
    find_package(OpenCV REQUIRED)
    
    include_directories(${OpenCV_INCLUDE_DIRS})
    
    add_executable(YOUR_EXCUTABLE YOUR_CODE_SOURCE_FILES)
    target_link_libraries(YOUR_EXCUTABLE ${OpenCV_LIBS})
    • Con este cmake archivo que he tenido que cambiar la incluye a » #include «opencv2/core/core.hpp» #include «opencv2/highgui/highgui.hpp»
    • y ¿funcionó?
    • Sí funcionó después de que he cambiado las rutas de acceso
  4. 0
    1. Descargar archivos de origen en OpenCV carpeta y
      install-opencv.sh secuencia de comandos.
    2. Ejecutando el archivo del script
      instalar automáticamente los archivos necesarios para opencv. Ejecute el siguiente
      código:

      chmod +x install-opencv.sh
      ./install-opencv.sh

    En caso de instalar la versión diferente de la biblioteca por favor, actualice la primera línea de la versión dentro de la secuencia de comandos de instalación.
    Para obtener más información, utilice este tutorial. Compilar con la siguiente línea:

    g++ `pkg-config --cflags opencv` example.cpp `pkg-config --libs opencv`

Dejar respuesta

Please enter your comment!
Please enter your name here