سؤال

وأنا جميلة جديدة لC ++ بناء التدفق، وأنا أفكر في التحول إلى استخدام الربط الجزئي للمكتبات بلدي بدلا من إنشاء أرشيف ar. أنا على أمل للحد من الوقت الارتباط في خطوة تجميع النهائية الحتمية التي لدي، وأنا الرقم جزئي ربط بعض المكتبات مرة واحدة يمكن أن تنقذ لي الوقت على ربط كل شيء في هذه الخطوة النهائية.

هل ما أنا واصفا ممكن؟ الرقم الأول ينبغي أن يكون شيئا على ld -Ur -o mylib.o [components] خطوط. هل هناك اعتبارات بناء الهامة التي أنا لا يأخذ بعين الاعتبار؟

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

المحلول

وتفقد أثر هام من وجود الملفات الكائن في أرشيف ar، وهو أن فقط الكائنات المشار إليها سوف تكون مرتبطة في.

إذا كان لديك كل foo.o مع foo رمز وbar.o مع bar رمز في أرشيف ar، والمرجع الوحيد رمز foo، foo.o فقط أن تكون مرتبطة في. إذا كنت بدلا من ذلك القيام صلة الجزئي، محتويات كلا سوف ينتهي في تنفيذ، حتى لو لم تتم الإشارة bar في أي مكان.

ويمكنك أيضا محاولة لرابط أسرع، مثل الذهب .

نصائح أخرى

والساعة الأخرى التي تريد استخدامها دينار -r للقيام الارتباط الجزئي إذا كان لديك بعض الملفات التي تحتوي على وجوه initialisation ثابت المطلوبة لتوفير وظائف معينة ولكن هذا هو أبدا يسمى مباشرة من قبل أي من التعليمات البرمجية.

إذا كنت ترغب أستطيع أن أكتب عن وثيقة التي تعرض كيفية حدوث ذلك وماذا يعمل!

و(انظر وقت التشغيل C ++ تسجيل فئة على سبيل المثال، فإنه يستخدم وظيفة السجل الثابتة التي تسجل نفسها في التسجيل، ومن ثم يمكن استخدامها لإنشاء وإرجاع قاعدة * مع سلوك متعدد الأشكال لأنه إنشاء كائن جديد ورثه من قاعدة انظر C ++ وقت التشغيل معرفة الطبقات حيث هو الجواب ل سؤال سألت.)

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