Я использую Microsoft Visual Studio 2011 Professional Beta
Я пытаюсь запустить файлы OpenCV C++ (http://opencv.willowgarage.com/wiki/Welcome), которые я скомпилировал с помощью cMake & Visual Studio Complier.
Однако, когда я перехожу к отладке проекта, я получаю 600+ ошибок, большинство из которых:
error LNK2026: module unsafe for SAFESEH image.
Очевидно, что эти файлы находятся в проекте opencv_ffmpeg, но я не смог их найти. Я просмотрел страницу обработчиков исключений safeseh на странице помощи Microsoft, но не смог найти точных ответов.
Мне интересно, сталкивался ли кто-нибудь еще с этой проблемой и удалось ли ее решить.
Из комментариев:
Это происходит, когда вы связываете .obj или .lib, содержащие код, созданный более ранней версией компилятора. Это, конечно, происходит, если вы скачали бинарник opencv_ffmpeg вместо исходника. Вы можете отключить опцию компоновщика, но тогда у вас'все равно будет несовместимость версий CRT, которая может привести к байтам. Пересоберите библиотеку из исходников. - Hans Passant 15 мая в 13:01 Спасибо за помощь, все получилось - Aaron Thompson May 17 at 14:50
Если вы получили эту ошибку при построении zlib в визуальной студии решение. Ищите ВНО\masmx86\bld_ml32.летучая мышьи добавить
параметр/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
Другой способ - добавить какой-нибудь SEH обработчик (например, пустой) в asm файлы и скомпилировать их с опцией /safeseh
, затем скомпилировать остальной код нормально с опцией компилятора /SAFESEH:YES
.
Пустой SEH-обработчик:
.safeseh SEH_handler
SEH_handler proc
;handler
ret
SEH_handler endp
Ваш пробег может варьироваться, но никто из предложения выше работал для меня (хотя я не пробовал прокатки мой собственный обработчик исключений АСМ).
Что сработало для выбора построения целевого выпуска/х64.
Я использую Windows 10 на 64-разрядном компьютере, и с помощью Visual студии 2015.
Целевой выпуск/Win32 с работы тоже. Я думаю, главное-выбрать"и отпустить " и;.