سؤال

وأنا أعمل على مشروع المضمنة التي تستخدم حاليا C في لينكس وuClibc. نحن مهتمون في نقله إلى C ++، ولكن أنا لا أريد النفقات العامة المرتبطة ربط في libstdc ++. انطباعي هو أن هذا من الممكن توفير نحن لا نستخدم أي شيء من STL، مثل iostream أو النواقل.

وكيف يمكن للمرء ز المباشر ++ لتجميع دون ربط libstdc ++؟

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

المحلول

وعند تجميع واستخدام g++ -c لتجميع فقط. ثم لربط، استخدم ld بدلا من g++. هذا استدعاء رابط مباشرة، الأمر الذي يتطلب منك أن يعين كل المكتبات على سطر الأوامر (بما في ذلك LIBC وlibcrt)، ولكن.

وبدلا من ذلك، إذا كنت تستخدم ز ++ ك "أفضل ج"، قد تكون قادرا على استخدام gcc للخطوة الارتباط النهائية (التي ستشمل LIBC تلقائيا)

نصائح أخرى

هل يمكن استخدام

g++ -nodefaultlibs -fno-exceptions a.cc

ولكن لا يمكنك استخدام جميع ج ++ يتميز بهذه الطريقة ...

لمن أجل اكتمال وصحة:

g++ -c -fno-exceptions a.cpp
gcc a.o -o a
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top