أنتجت GCC DLLs غير متوافقة مع Intel Visual Fortran؟
-
23-09-2019 - |
سؤال
لقد استخدمت GCC لتجميع بعض ملفات مصدر Fortran في *.lib
و *.dll
على منصة Windows ، باستخدام أحدث إصدار من Mingw . مجلس التعاون الخليجي المستخدم هو الإصدار 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
يستخدم تلك DLLs. لكن لدي انطباع ( من منتدى دعم إنتل) أن هذا ليس ممكن.
هل انطباعي صحيح؟ أم أنه طالما استطعت إنتاج libs و dlls الأساسية (بغض النظر عن المترجم وكم هو عمره) ، يمكنني استخدامها كـ libs و dlls ، ويمكنني الارتباط بها من أي ، حديثة أو حديثة أو القديم ، المترجم؟
المحلول
يستخدم G77 ABI مختلف عن التلقيح الاصطناعي ، نعم. لذلك ما لم يكن لدى IVF بعض خيار توافق G77/F2C ، فلن يعمل.
من المحتمل أن يكون الحل الأسهل بالنسبة لك هو استخدام التلقيح الاصطناعي لتجميع المكتبات أيضًا.
نصائح أخرى
كما أشير بالفعل ، من المحتمل أن يكون خلط المترجمين مع اتفاقيات الاتصال المختلفة أمرًا صعبًا للغاية.
أشارت هذه الإجابة في منتدى 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 باستخدام خيارات البرمجة المترجم المناسبة. ما هي بنيات اللغة التي ترفضها؟