Программа, использующая Qt, OpenCV работает нормально при запуске из VS, но при запуске исполняемого файла обычно происходит сбой при использовании функциональности OpenCV - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь развернуть свою программу на C ++.Все его функции работают, если я запускаю программу из VS IDE (режим выпуска).Когда я обычно запускаю один и тот же исполняемый файл, главное окно появляется нормально, и его функциональность не-OpenCV работает;но когда я пытаюсь открыть изображение и заставить программу использовать материал OpenCV (его открытие вызывает использование нескольких манипуляций OpenCV на изображении), происходит сбой.

Я успешно запустил windeployqt из командной строки разработчика для VS 2017.Однако он не копировал библиотеки OpenCV рядом с моим исполняемым файлом, поэтому я скопировал opencv_world400.dll и opencv_ffmpeg400_64.dll рядом с другими библиотеками.Я предполагаю, что это тот шаг, когда я что-то упускаю.Папка выглядит следующим образом: the executabe's folder

Я использую VS2017 с Qt5.10.1 и OpenCV4.0.Я не думаю, что смогу вставить соответствующий код, так как проект довольно большой и широко использует функциональность OpenCV.

1 Ответ

0 голосов
/ 06 января 2019

Я понял, проблема не связана с OpenCV (opencv_world400.dll было достаточно для копирования в папку).

Проблема была: я использовал Qt applicationDirPath(), который возвращает путь к исполняемому файлу,чтобы получить доступ к папке Results , которую я должен был создать ранее, но не сделал.Если программа запускалась из VS, она обращалась к существующей папке Results в папке Debug , хотя я запускал программу в режиме выпуска и applicationDirPath() возвращал путь к исполняемому файлув папке Release .Когда я обычно запускал один и тот же исполняемый файл, он не мог найти папку Results и вылетал.

...