Как исправить ошибку LNK2019 при использовании videoInput.lib с OpenCv2.1? - PullRequest
0 голосов
/ 03 сентября 2010

Я новичок в OpenCV и у меня есть некоторые проблемы при использовании videoInput.lib, пожалуйста, помогите мне. Я использую winXP SP3 + Cmake2.8.2 + OpenCV 2.1 + Visual Studio 2008. Я выполнил все настройки, и теперь можно использовать OpenCv когда я кодирую. Я слышал, что videoInput.lib был включен с OpenCV2.0, и я хочу использовать его, поэтому я попробовал коды ниже для быстрого тестирования.


// Test2.cpp: определяет точку входа для консольного приложения. //

#include "videoInput.h"
#include "stdafx.h"       
#include "cv.h"    
#include "highgui.h"  
#include "cxcore.h"

int main (int, char * *) {

int width = 320;

int height = 240;

IplImage * pRgb = cvCreateImage (cvSize (ширина, высота), IPL_DEPTH_8U, 3);

videoInput видео;

video.setupDevice (0, ширина, высота);

video.showSettingsWindow (0);

в то время как (1) * +1021 *

{ если (video.isFrameNew (0))

{ video.getPixels (0, (unsigned char *) pRgb-> imageData, false, true);

    //cvFlip(pRgb,NULL,1);

    char c=cvWaitKey(1);

    if(c==27) break;

    cvShowImage("Video", pRgb);

} } }


Однако, когда я строю коды, я получаю следующую ошибку

1> ------ Начата сборка: Проект: Test2, Конфигурация: Отладка Win32 ------

1> Компиляция ...

1> Test2.cpp

1> c: \ opencv2.1 \ vc2008 \ include \ opencv \ cvcompat.h (803): предупреждение C4819: файл содержит символ, который не может быть представлен в текущей кодовой странице (936). Сохраните файл в формате Unicode, чтобы предотвратить потерю данных

1> Связь ...

1> Test2.obj: ошибка LNK2019: неразрешенный внешний символ "public: __thiscall videoInput :: ~ videoInput (void)" (?? 1videoInput @@ QAE @ XZ), на который ссылается функция _main

1> Test2.obj: ошибка LNK2019: неразрешенный внешний символ «public: bool __thiscall videoInput :: getPixels (int, unsigned char *, bool, bool)» (? GetPixels @ videoInput @@ QAE_NHPAE_N1 @ Z), указанный в функции _main

1> Test2.obj: ошибка LNK2019: неразрешенный внешний символ "public: bool __thiscall videoInput :: isFrameNew (int)" (? IsFrameNew @ videoInput @@ QAE_NH @ Z), на который есть ссылка в функции _main

1> Test2.obj: ошибка LNK2019: неразрешенный внешний символ "public: void __thiscall videoInput :: showSettingsWindow (int)" (? ShowSettingsWindow @ videoInput @@ QAEXH @ Z), на который есть ссылка в функции _main

1> Test2.obj: ошибка LNK2019: неразрешенный внешний символ "public: bool __thiscall videoInput :: setupDevice (int, int, int)" (? SetupDevice @ videoInput @@ QAE_NHHH @ Z), на который есть ссылка в функции _main

1> Test2.obj: ошибка LNK2019: неразрешенный внешний символ "public: __thiscall videoInput :: videoInput (void)" (?? 0videoInput @@ QAE @ XZ), на который есть ссылка в функции _main

1> C: \ Documents and Settings \ SKSC \ Мои документы \ Visual Studio 2008 \ Projects \ Test2 \ Debug \ Test2.exe: фатальная ошибка LNK1120: 6 неразрешенных внешних объектов 1> Журнал сборки был сохранен в «file: // c: \ Documents and Settings \ SKSC \ Мои документы \ Visual Studio 2008 \ Projects \ Test2 \ Test2 \ Debug \ BuildLog.htm"

1> Test2 - 7 ошибок, 1 предупреждение (я)

========== Построение: 0 выполнено, 1 не выполнено, 0 обновлено, 0 пропущено ==========


Я долго гуглял, но все еще не могу найти решение, я схожу с ума. Кто-нибудь знает, как решить эти проблемы? Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 05 июня 2011

Да, вы должны явно ссылаться на videoInput.lib из компоновщика.

Здесь вы найдете то, что вам нужно.

0 голосов
/ 09 февраля 2012

Вот как вы можете решить это: «Перейдите в Свойства проекта -> Свойства конфигурации -> Линкер -> Ввод и добавьте videoinput.lib вместе с обычными файлами библиотеки OpenCV». Это решение с сайта, упомянутого выше. Я попробовал, и это работает.

0 голосов
/ 06 декабря 2010

Я думаю, что вам все еще нужно связаться с videoInput.lib, OpenCV использует videoInput.lib, но это не значит, что вы можете использовать все функции videoInput.lib из OpenCV

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...