سؤال

لقد استخدمت 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 باستخدام خيارات البرمجة المترجم المناسبة. ما هي بنيات اللغة التي ترفضها؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top