Приложение не может запуститься: компиляция OpenCV x64 в VS использует библиотеки x86 - PullRequest
0 голосов
/ 24 февраля 2012

Компьютер: Windows 7 x64 bit, Visual Studio 2008

Загрузил последнюю версию OpenCV (2.3.3) из SVN и скомпилировал ее, следуя этим инструкциям (http://opencv.itseez.com/doc/tutorials/introduction/windows_install/windows_install.html#windows-installation) с соответствующими заменами x86 / x64.

Все прекрасно скомпилировано в то, что я исключаю (как и в скомпилированной версии, к которой я привык), но всякий раз, когда я запускаю любую из моих собственных программ или любые примеры, включенные в каталог / bin, яполучить следующую ошибку:

Не удалось правильно запустить приложение (0xc000007b). Нажмите кнопку ОК, чтобы закрыть приложение

Итак, я загрузил средство обхода зависимостей и обнаружил следующую зависимостьошибки:

  • MSVCP90.dll x86 (красный)
  • MSVCR90.dll x86 (красный)
  • TBB.dll x86 (красный)
  • IESHIMS.dll (отсутствует)

Я не связываю dll правильного размера слова при компиляции. Первые два выглядят как среды выполнения Visual Studio 9.0, а последнее, что я слышу, - это DLL Internet Explorer.уже установлен VS2008Распространяемый x64 (мне нужно все перекомпилировать?), но он все еще не работает.

Я искал в Интернете и обнаружил, что это распространенная проблема, но на самом деле нет единого решения.Для меня это происходит как с отладкой, так и с выпуском.

Есть идеи?Большое спасибо.

1 Ответ

2 голосов
/ 25 февраля 2012

Я разобрался в проблеме. Файлы TBB, которые cmake связывал при создании моего решения, представляли собой 32-разрядные двоичные файлы. Я удалил TBB из решения и теперь могу запускать приложения OpenCV ...

Если бы я знал достаточно о cmake, чтобы переписать его, чтобы он мог направить программу на правильные.

...