Ссылка MinGW64 .o на MSVC 2010

Как связать объектные файлы, созданные с помощью компилятора MinGW64 fortran (gfortran) (.o), с MSVC 2010?

Я просто хочу использовать 64-битную библиотеку arpack с 64-битным MSVC-решением, но все другие способы сделать это оказались безуспешными. MSVC находит функции arpack с конфигурацией 32-битного решения, но запускает приложение с ошибкой во время выполнения и вообще не может найти функцию arpack с конфигурацией 64-битного решения.

0

Решение

Краткий ответ: вы не можете. Эти компиляторы используют разные ABI, что означает, что их формат объектного файла отличается и несовместим.

Что может быть возможно, так это позволить MinGW создать DLL из кода на Фортране. Импортируйте это в свою C ++ программу, но остерегайтесь искажения имени: Символы, экспортируемые DLL, не должны быть искажены (я не уверен, есть ли вообще искажение имени в Fortran). В вашем коде C ++ функции, импортированные из DLL, должны быть объявлены как «extern C», чтобы предотвратить искажение имен на стороне C ++.

0

Другие решения

Других решений пока нет …