إخراج LDD الذي يعرض ملف الكائن المشترك الذي لا تسمى وظيفته

StackOverflow https://stackoverflow.com/questions/2651220

  •  27-09-2019
  •  | 
  •  

سؤال

قمت بتشغيل أمر LDD على قابلة للتنفيذ تم إنشاؤها بواسطة Open MPI. يعرض إشارة إلى libpthread.so باستخدام متغير ld_preload لقد قمت بإنشاء تنفيذي الخاص لـ pThread_create ، ولكن من إخراج تكنولوجيا المعلومات يبدو أن تنفيذ MPI لا يدعو pthread_create كما كنت أتوقع. لماذا يعرض LDD pthread لذا ملف في الإخراج إذا لم يتم استخدامه؟ هل لا يستخدم Open MPI مؤشر ترابط MPI منفصل لكل عقدة لتنفيذ الوظيفة؟

هل كانت مفيدة؟

المحلول

إذا لم يكن الثنائي مرتبطًا --as-needed ثم ستحصل على إشارة إلى كل مكتبة تُعطى على سطر أوامر الارتباط ، بغض النظر عما إذا كانت هناك حاجة إليها بالفعل. يمر -Wl,--as-needed إلى GCC من أجل الحصول على خيار LD.

نصائح أخرى

يستخدم MPI العمليات ، وليس المواضيع. لذلك لا ، لن يستخدم فتح MPI مؤشر ترابط MPI منفصل لكل عقدة.

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