Библиотеки GCC, созданные GCC, несовместимы с Intel Visual Fortran?
-
23-09-2019 - |
Вопрос
Я использовал gcc для компиляции нескольких исходных файлов Фортрана в *.lib
и *.dll
на платформе Windows, используя последнюю версию Мингу .Используется gcc версии 3.Результат вывода: arpack_win32.dll
, blas_win32.dll
и lapack_win32.dll
.
Затем я хочу скомпилировать sssimp.f против arpack_win32.dll
, blas_win32.dll
и lapack_win32.dll
с использованием Компилятор Intel Visual Fortran для Windows, потому что sssimp.f
использует эти библиотеки DLL.Но у меня сложилось впечатление( с форума поддержки Intel) что это нет возможный.
Верно ли мое впечатление?Или, пока я могу создавать базовые библиотеки и библиотеки DLL (независимо от того, в каком компиляторе и сколько лет), я могу использовать их в качестве базовых библиотек и DLL, и я могу ссылаться на них из любого, современного или старый, компилятор?
Решение
Да, g77 использует другой ABI, чем IVF.Поэтому, если у IVF нет опции совместимости с g77/f2c, она не будет работать.
Самым простым решением для вас, вероятно, будет использование IVF и для компиляции библиотек.
Другие советы
Как уже отмечалось, смешивание компиляторов с разными соглашениями о вызовах, вероятно, будет очень трудным.
В этом ответе на форуме Intel указывалась версия arpack, переведенная на Fortran 90 - http://people.sc.fsu.edu/~burkardt/f_src/arpack/arpack.html -- Ты можешь это использовать?Также см http://people.sc.fsu.edu/~burkardt/f_src/lapack/lapack.html и http://people.sc.fsu.edu/~burkardt/f_src/blas1_s/blas1_s.html
Или Intel Visual Fortran должен иметь возможность скомпилировать Fortran 77, используя подходящие параметры компилятора.Какие языковые конструкции он отвергает?