سؤال

أحاول التجميع بطريقة بحيث يرتبط ملف exec بـ gcc بشكل ثابت.افترضت الركض bjam link=static runtime-link=static ينبغي أن تفعل الخدعة؟عندما حاولت ذلك أحصل على الأخطاء التالية مثل:

...failed gcc.link TGT/bin/gcc-4.5.1/debug/link-static/runtime-link-static/datagen...
gcc.compile.c++ TGT/bin/gcc-4.5.1/release/link-static/runtime-link-static/base_data_gen.o
gcc.link TGT/bin/gcc-4.5.1/release/link-static/runtime-link-static/datagen
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status

هذه لا تأتي عندما أركض bjam link=static.يرجى تقديم النصيحة ؟

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

المحلول

أعتقد أن libstdc++ لم يتم ربطه بشكل ثابت عن قصد.يعتبر الكثيرون أن القيام بذلك محفوف بالمخاطر (على الرغم من أنني لم أسمع سببًا وجيهًا حقًا).لا أعتقد أن هناك علامة بسيطة يمكنك إضافتها.بالنسبة لمجموعة أدوات مجلس التعاون الخليجي، يمكنك إضافة شيء من هذا القبيل

-static-libgcc  -Wl,-Bstatic -lstdc++

إلى cxxflags الخاص بك لمتغير البناء الخاص بك.

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