módulo inseguro para SAFESEH image C++


Estoy usando Microsoft Visual Studio 2011 Professional Beta

Estoy intentando ejecutar los archivos OpenCV C++ ( http://opencv.willowgarage.com/wiki/Welcome ) que he compilado usando CMake y el Complier de Visual Studio.

Sin embargo, cuando voy a depurar el proyecto obtengo más de 600 errores, la mayoría de ellos son:

Error LNK2026: módulo inseguro para la imagen SAFESEH.

Aparentemente estos archivos están en el proyecto opencv_ffmpeg pero no pude encontrarlos, tengo eché un vistazo a la página de Manejadores de excepciones seguras de safeseh en la página de ayuda de Microsoft, pero no pude encontrar ninguna respuesta definitiva.

Me preguntaba si alguien más ha tenido este problema y si se las arreglaron para solucionarlo.

Author: Aaron Thompson, 2012-05-15

5 answers

De los comentarios:

Esto sucede cuando se enlaza un .obj or .lib que contiene código creado por una versión anterior del compilador. Lo que por supuesto sería común si descargaras un binario para opencv_ffmpeg en lugar del código fuente. Puede desactivar la opción enlazador, pero entonces todavía tendrá una incompatibilidad de versión CRT que puede byte. Reconstruir la biblioteca desde el origen. - Hans Passant 15 de mayo a las 13:01  
 
Gracias por la ayuda, funcionó – Aaron Thompson May 17 a las 14: 50

 55
Author: Bo Persson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-19 18:51:16

Deshabilitar la opción "Imagen tiene Manejadores de excepción seguros" en Propiedades del proyecto -> Propiedades de configuración -> Enlazador -> Pestaña Avanzada me ayudó.

 121
Author: Ievgen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-03 16:36:08

Otra forma es agregar algún manejador SEH (vacío, por ejemplo) a los archivos asm y compilarlos con la opción /safeseh, luego compilar otro código normalmente con la opción /SAFESEH:YES compilador.

Controlador SEH vacío:

.safeseh SEH_handler

SEH_handler   proc
;handler
ret

SEH_handler   endp
 8
Author: DitherSky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-10 16:54:58

Si tiene este error al compilar ZLIB en Visual Studio, aquí está la solución. Busque contrib\masmx86\bld_ml32.bat y agregue /safeseh como una opción

Antes

ml /coff /Zi /c /Flmatch686.lst match686.asm
ml /coff /Zi /c /Flinffas32.lst inffas32.asm

Después de

ml /safeseh /coff /Zi /c /Flmatch686.lst match686.asm
ml /safeseh /coff /Zi /c /Flinffas32.lst inffas32.asm
 7
Author: Nayana Adassuriya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-27 10:03:34

Su kilometraje puede variar, pero ninguna de las sugerencias anteriores funcionó para mí (aunque no intenté rodar mi propio controlador de excepciones asm).

Lo que funcionó fue seleccionar build target Release/x64.

Estoy ejecutando Windows 10 en una máquina de 64 bits y utilizando Visual Studio 2015.

La versión de destino/Win32 también funciona. Supongo que lo principal es elegir "Liberación".

 0
Author: Bob Stine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-15 18:50:08