Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: sakren 20 Prosince 2010, 17:25:50
-
Zdravím, chtěl jsem vyzkoušet knihovnu opencv pro práci s webkamerou, ovšem při kompilaci se ukazuje chyba "undefined reference to 'cvCreateCameraCapture'". Velmi děkuji za případné odpovědi.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <opencv/cv.h>
#include <opencv/highgui.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect( ui->pushButton, SIGNAL( clicked() ), this, SLOT( click()) );
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::click() {
CvCapture * cap = cvCaptureFromCAM( 0 ); /* ZDE JE CHYBA */
}
-
Chyba znamená to, že kompilátor nezná tu funkci cvCreateCameraCapture. Takže je někde chyba v linkování hlavičkového souboru, který obsahuje definici této funkce ;)
-
PS: no a jelikož jsem po dlouhé době něco kompiloval... tak kompilátor je tak trochu hloupej a vyhazuje tuhle chybu... ale u Vás si myslím, že půjde o nedolinkování knihovny přímo kompilátoru... což samotné include v hlavičkovém souboru nezajistí a je třeba kompilovat s příznakem -lopencv. Jelikož asi používáte IDE QT Creator, tak je potřeba někde v konfiguraci projketu přidat, aby linkoval tuto knihovnu... zkuste hledat... z hlavy nevím přesně cestu a nemám možnost momentálně zjistit.
viz. více o kompilaci: http://opencv.willowgarage.com/wiki/CompileOpenCVUsingLinux
-
Ano bylo to tak. Stačilo přidat do .pro souboru mého projektu toto:
INCLUDEPATH += /usr/local/include/opencv/
LIBS += /usr/local/lib/libopencv_highgui.so \
/usr/local/lib/libopencv_core.so
a již vše funguje. Mockrát děkuji