Перейти к содержимому
Compvision.ru
JoQeR

Конечная компиляция приложения со сторонней библиотекой OpenCV

Recommended Posts

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

Думаю здесь много опытных пользователей которые делали это. Огромная просьба кто-нибудь опишите все моменты (лучше пошагово) как создавать это самое независимое приложение. Как и что перекомпилоровать, какие файлы запихнуть в одну папку с экзешником, как избавиться от ошибок с LINK-ами (вечто что то не нравится компилятору), как изменить настойки самого проекта в "Свойствах проекта". В последнем, насколько я понял, куча нюансов и моментов, без которых приложение не скомпилируется или не будет работать, начиная от другой версии Framework до динамических или статических библиотек.

Один из многих вариантов компиляции простейшей программы в режиме Release, причем так у всех моих прог с использованием OpenCV2.1. ( С Debug все летает) :

#include "stdafx.h"

#include <cv.h>

#include <highgui.h>


IplImage* image = 0;

IplImage* src = 0;


int main(int argc, char* argv[])

{

       	//=======================================

        // получаем картинку

	    image = cvLoadImage("d:/1.jpg",1);


        // окно для отображения картинки

        cvNamedWindow("original",CV_WINDOW_AUTOSIZE);


        // показываем картинку

        cvShowImage("original",image);


        // ждём нажатия клавиши

        cvWaitKey(0);


        // освобождаем ресурсы

        cvReleaseImage(& image);

        cvReleaseImage(&src);


        // удаляем окно

        cvDestroyWindow("original");

        return 0;

    //=======================================

}
Вот ошибки, которые вылезают при компиляции:

1>------ Построение начато: проект: ProbOPCV, Конфигурация: Release Win32 ------

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

1>stdafx.cpp

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

1>ProbOPCV.cpp

1>AssemblyInfo.cpp

1>Компиляция ресурсов...

1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0

1>Copyright (C) Microsoft Corporation.  All rights reserved.

1>Компоновка...

1>ProbOPCV.obj : error LNK2001: неразрешенный внешний символ ""extern "C" void __cdecl cvReleaseImage(struct _IplImage * *)" (?cvReleaseImage@@$$J0YAXPAPAU_IplImage@@@Z)"

1>ProbOPCV.obj : error LNK2001: неразрешенный внешний символ ""void __cdecl cv::fastFree(void *)" (?fastFree@cv@@$$FYAXPAX@Z)"

1>ProbOPCV.obj : error LNK2001: неразрешенный внешний символ ""extern "C" struct _IplImage * __cdecl cvLoadImage(char const *,int)" (?cvLoadImage@@$$J0YAPAU_IplImage@@PBDH@Z)"

1>ProbOPCV.obj : error LNK2001: неразрешенный внешний символ ""extern "C" int __cdecl cvNamedWindow(char const *,int)" (?cvNamedWindow@@$$J0YAHPBDH@Z)"

1>ProbOPCV.obj : error LNK2001: неразрешенный внешний символ ""extern "C" void __cdecl cvShowImage(char const *,void const *)" (?cvShowImage@@$$J0YAXPBDPBX@Z)"

1>ProbOPCV.obj : error LNK2001: неразрешенный внешний символ ""extern "C" int __cdecl cvWaitKey(int)" (?cvWaitKey@@$$J0YAHH@Z)"

1>ProbOPCV.obj : error LNK2001: неразрешенный внешний символ ""extern "C" void __cdecl cvDestroyWindow(char const *)" (?cvDestroyWindow@@$$J0YAXPBD@Z)"

1>D:\Универ\С++\ProbOPCV\Release\ProbOPCV.exe : fatal error LNK1120: 7 неразрешенных внешних элементов

1>Журнал построения был сохранен в "file://d:\Универ\С++\ProbOPCV\ProbOPCV\Release\BuildLog.htm"

1>ProbOPCV - ошибок 8, предупреждений 0

========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Поставить английскую студию. (опционально)

2. Посмотреть как собирать и подключать opencv. http://www.compvision.ru/forum/index.php?showtopic=456

3. Статически линковать библиотеки(если надо). http://www.compvision.ru/forum/index.php?showtopic=318

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

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

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×