Я использую Microsoft Visual Studio 2011 Professional Beta
Я пытаюсь запустить файлы OpenCV C ++ ( http://opencv.willowgarage.com/wiki/Welcome ), которые я скомпилировал с помощью cMake и Visual Studio Complier.
Однако когда я иду отлаживать проект, я получаю более 600 ошибок, большинство из которых:
ошибка LNK2026: модуль небезопасен для образа SAFESEH.
По-видимому, эти файлы находятся в проекте opencv_ffmpeg, но я не смог их найти. Я просмотрел страницу Safe Exception Handlers на странице справки Microsoft, но я не смог найти никаких окончательных ответов.
Мне было интересно, была ли у кого-нибудь еще эта проблема и удалось ли им ее исправить.
c++
visual-studio
visual-c++
Аарон Томпсон
источник
источник
Ответы:
Из комментариев:
источник
Мне помогло отключение опции «Изображение имеет безопасные обработчики исключений» в свойствах проекта -> Свойства конфигурации -> Компоновщик -> вкладка «Дополнительно».
источник
Если вы получили эту ошибку при создании ZLIB в Visual Studio, вот решение. Ищите
contrib\masmx86\bld_ml32.bat
и добавляйте/safeseh
как вариантПеред
ml /coff /Zi /c /Flmatch686.lst match686.asm ml /coff /Zi /c /Flinffas32.lst inffas32.asm
После
ml /safeseh /coff /Zi /c /Flmatch686.lst match686.asm ml /safeseh /coff /Zi /c /Flinffas32.lst inffas32.asm
источник
.asm
вместо этого мне пришлось изменить реквизиты файлов в проводнике решений.Другой способ - добавить обработчик SEH (например, пустой) в файлы asm и скомпилировать их с
/safeseh
опцией, а затем скомпилировать другой код обычно с/SAFESEH:YES
опцией компилятора.Пустой обработчик SEH:
источник
/safeseh
кажется, достаточно. Это действительно должно быть одобрено!Ваш опыт может отличаться, но ни одно из приведенных выше предложений не помогло мне (хотя я не пробовал использовать собственный обработчик исключений asm).
Что действительно работало, так это выбор целевой сборки Release / x64.
Я запускаю Windows 10 на 64-битной машине и использую Visual Studio 2015.
Целевой Release / Win32 тоже работает. Думаю, главное - выбрать «Релиз».
источник