JoQeR 0 Жалоба Опубликовано November 29, 2011 Неоднократно видел темы с проблемами создания конечного приложения, которое будет работать на любом компьюторе, а не только на том где оно скомпилированно, но так и не смог найти решения, пробуя различные способы. Думаю здесь много опытных пользователей которые делали это. Огромная просьба кто-нибудь опишите все моменты (лучше пошагово) как создавать это самое независимое приложение. Как и что перекомпилоровать, какие файлы запихнуть в одну папку с экзешником, как избавиться от ошибок с 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 ========== Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано November 30, 2011 1. Поставить английскую студию. (опционально) 2. Посмотреть как собирать и подключать opencv. http://www.compvision.ru/forum/index.php?showtopic=456 3. Статически линковать библиотеки(если надо). http://www.compvision.ru/forum/index.php?showtopic=318 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
JoQeR 0 Жалоба Опубликовано November 30, 2011 Коротко и ясно, спасибо! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах