Компиляция libffi с VS2012 завершается ошибкой со смертельной ошибкой LNK1281: не удалось создать образ SAFESEH

компиляция libffi с VS11 дает следующую ошибку компоновщика

libffilibffi-3.0.9msWin32Debugffi.dll : fatal error LNK1281: Unable to generate SAFESEH image.

тот же проект отлично компилировался с VS10, но после автоматического обновления с VS2012 он начал давать ошибку компоновщика

объяснение MSDN слишком загадочно и наименее полезно

я мог бы восстановить с /SAFESEH:NO , но я не знаю последствий.

пожалуйста, посоветуйте, что может пойти не так.

1 ответов


основной смысл отсутствия SAFESEH Это то, что ваше приложение не будет принято для магазина Windows 8 или для сертификация рабочего стола Windows 8. Если это не проблема для вас, то не стесняйтесь использовать /SAFESEH:NO.

на документация говорит:

наиболее распространенная причина, по которой компоновщик не может создать изображение, заключается в том, что один или несколько входных файлов (модулей) компоновщика несовместимы с безопасная функция обработчиков исключений. Общей причиной несовместимости модуля с обработчиками безопасных исключений является то, что он был создан с помощью компилятора из предыдущей версии Visual C++.

возможно ли, что обновление проекта до VS2012 изменило настройку на /SAFESEH:YES. Возможно, вы никогда не строили с SAFESEH.