Я унаследовал проект Visual Studio, созданный для работы в Visual Studio 2010 / Intel 2013, который представляет собой комбинацию проектов C ++ и Fortran. Мне было поручено внести необходимые изменения, чтобы проект мог быть собран и запущен в Visual Studio 2015 с Intel Fortran 2017. У меня есть все, что нужно компилировать, собирать и запускать в режиме отладки, но я не могу заставить его встроиться в релиз Режим. Для всех проектов Fortran, которые ссылаются на проект C ++ .lib, я получаю следующие сообщения:
MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
fatal error C1905: Front end and back end not compatible (must target same processor).
LINK : fatal error LNK1257: code generation failed
Я проверил и дважды проверил конфигурацию, и все проекты строятся для платформы Win32.
Выполняя поиск в Интернете, я прочитал, что это может быть связано с тем, что для разных проектов настройки по-разному. Я поиграл с настройками оптимизации, которые либо ничего не делают, либо приводят к конфликтам в библиотеке. Я искал в Интернете, чтобы попытаться разрешить эти конфликты, и, похоже, не могу найти достаточно простого решения, которое я мог бы реализовать.
Проект по-прежнему создается и выполняется в Visual Studio 2010 как в режиме отладки, так и в режиме выпуска. Я даже пытался собрать новую версию Fortran с .lib, созданной из Visual Studio 2010, и получил те же ошибки.
Есть ли что-то принципиально другое в новых версиях Visual Studio и Intel Fortran, которые несовместимы?
Ошибка C1905 гласит:
«Внешний интерфейс и задний конец не совместимы (должен быть ориентирован на один и тот же процессор)»
Что это значит и почему это происходит? «Эта ошибка возникает, когда файл .obj создается внешним интерфейсом компилятора (C1.dll), который предназначен для одного процессора, такого как x86, ARM или x64, но читается внутренним сервером (C2.dll), который предназначен другой процессор. «
«Чтобы устранить эту проблему, убедитесь, что вы используете совпадающий внешний и внутренний интерфейсы. Это значение по умолчанию для проектов, созданных в Visual Studio. Эта ошибка может возникнуть, если вы отредактировали файл проекта и использовали разные пути к инструментам компилятора. Если вы специально не указали путь для инструментов компилятора, то эта ошибка может возникать, если ваша установка Visual Studio повреждена. Например, вы могли скопировать DLL-файлы компилятора из одного места в другое. Используйте Программы и компоненты в Панель управления Windows для восстановления или переустановки Visual Studio. «
Вы заявили, что пытаетесь портировать свой проект в период с 2013 по 2017 год, что имеет смысл, если вы не можете заставить его собирать и запускать в режиме выпуска, поскольку инструменты компилятора, скорее всего, находятся в разных местах.
-MSDN
Других решений пока нет …