Как я могу решить ошибку ссылки My Visual C ++ 2008 с OpenCV? - PullRequest
1 голос
/ 07 октября 2011

Я - самый лучший разработчик OpenCV.

Я только что установил OpenCV и создал программу на C ++ следующим образом.

Мой компилятор - Visual C ++ 2008.

# include "highgui.h"
void main() {
  IplImage* img = cvLoadImage("C:/OpenCV/samples/cpp/tutorial_code/images/lena.png",-1);
  cvNamedWindow("lena",0);
  cvShowImage("lena",image);
  cvWaitKey(0);
  cvReleaseImage(&image);
}

Но его невозможно создать с помощью сообщения об ошибке, и я не могу решить эту проблему.

Сообщение об ошибке выглядит следующим образом.

(Мой компилятор корейской версии, и япереведите сообщение об ошибке на английский. И английский язык плохой, но вы, возможно, поймете, как оно было обработано.)

1>------ begin build: project: image1st,: Debug Win32 ------ 
1> compiling)
1>image1st.cpp
1>c:\vs2008\ccp_file\image1st\image1st.cpp(17) : warning C4700: not inetialized ‘image’ use local variable
1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>linking
1>image1st.obj : error LNK2019: _cvReleaseImage External Symbol(refrence positon: _main function) not defined.
1> image1st.obj : error LNK2019: _cvWaitKey External Symbol(refrence positon: _main function)not defined.
1> image1st.obj : error LNK2019: _cvShowImage External Symbol(refrence positon: _main function)not defined.)
1> image1st.obj : error LNK2019: _cvNamedWindow External Symbol(refrence positon: _main function)not defined.)
1>image1st.obj : error LNK2019: _cvLoadImage External Symbol(refrence positon: _main function)not defined.)
1>project: warning PRJ0018 : can not find the next environment variable.
1>$(OPENCV_DIR)
1>image1st – errors: 6, warning: 1

И я изменил среду Visual C ++, изменив ее следующим образом.

И я вписываю «$ (OPENCV_DIR) \ include» в запись «Дополнительные включаемые каталоги»,

и делаю запись «Дополнительные зависимости», чтобы включить следующий файл .lib в руководства по выпуску 2.3 OpenCV Tutorials Release 2.3.

  • 'opencv_core231d.lib'
  • 'opencv__imgproc231d.lib'
  • 'opencv__highgui231d.lib'
  • 'opencv__ml231d.lib' 10281029 * 'opencv__video231d.lib'
  • 'открытоcv__features2d231d.lib '
  • ' opencv__calib3d231d.lib '
  • ' opencv__objdetect231d.lib '
  • ' opencv__contrib231d.lib '
  • 'opencv__flann231d.lib'

И каталоги include и библиотеки среды Visual C ++ изменяются следующим образом.

Для библиотеки:

  • $ (VSInstallDir) lib
  • $ (VSInstallDir)
  • $ (FrameworkSDKDir) lib
  • $ (WindowsSdkDir) \ lib
  • $ (VCInstallDir) atlmfc\ lib \ i386
  • $ (VCInstallDir) atlmfc \ lib
  • $ (VCInstallDir) lib
  • C: \ opencv \ build \ x86 \ vc10 \ lib //ified
  • C: \ opencv \ build \ x86 \ vc9 \ lib // изменен
  • C: \ opencv \ build \ x64 \ vc10 \ lib // изменен
  • C: \opencv \ build \ x64 \ vc9 \ lib // модифицировано
  • C: \ opencv \ build \ gpu \ x86 \ lib // модифицировано
  • C: \ opencv \ build \ gpu \ x64 \lib // модифицированный

Для включения:

  • $ (VCInstallDir) atlmfc \ include
  • $ (WindowsSdkDir) \ include
  • $ (FrameworkSDKDir) include
  • $ (VCInstallDir) include
  • C: \ OpenCV \ build \ include \ opencv //ified
  • C: \ OpenCV \ build \ include \ opencv2 // модифицировано
  • C: \ opencv \ build \ include // модифицировано

Ответы [ 3 ]

1 голос
/ 07 октября 2011

Похоже, ваш процессор не может сначала распознать vairble пользователя OPEN_CV, убедитесь, что vairble системы \ пользователя верен.чтобы сделать это, перейдите в свойства системы -> в расширенном меню -> чтобы перейти к переменным окружения -> убедитесь, что ваша системная переменная верна, если нет, создайте ее с путем к местоположению вашей открытой библиотеки cv.

user variables

похоже, что вы все делаете правильно, я думаю, ваша проблема в том, что вы пропустили некоторые на этапе пост-сборки ...

Во-вторых, вы 'Вам придется скопировать dll-файлы из библиотеки openCV в папку вашего проекта.для этого, пожалуйста, укажите соответствующий путь на этапе пост-сборки вашего проекта.зайдите в свой проект: свойства ... посмотрите картинку here

и включите команду:

copy "C:\OpenCV2.31\CMake_Build\bin\Debug\*.dll"
copy "C:\OpenCV2.31\CMake_Build\bin\Debug\*.pdb"

Удачи

S

0 голосов
/ 07 октября 2011
0 голосов
/ 07 октября 2011

В основном кажется, что компилятор не может найти библиотеки OpenCV или имеет проблемы с выбором правильной.

Убедитесь, что необходимые библиотеки (например, opencv__xxx.lib) можно найти в каталогах, которые вы указали в каталогах библиотек (C:\opencv\build\x86\vc10\lib и т. Д.). Кроме того, вы должны указывать только каталоги для вашей платформы,т.е. только vc9 (так как вы используете VS2008) и x86 / x64 в зависимости от вашей архитектуры.

Предупреждение PRJ0018 указывает, что переменная окружения OPENCV_DIR не установлена.Вы можете сделать это в диалоговом окне «Свойства системы» (обычно вы получаете его, щелкнув правой кнопкой мыши «Мой компьютер» и выбрав «Свойства», в Win7 / Vista вы должны перейти в «Расширенные настройки системы») на вкладке «Расширенные»Кнопка «Переменные среды».Но если вы уже изменили включаемые каталоги, вы можете в любом случае пропустить параметр «Дополнительные подключаемые каталоги».

...