سؤال

ونقل اقتطاع لتناسب: R_X86_64_PC32 ضد `.bss '

وأنا الحصول على هذا الخطأ رابط في غرام ++ عند ترجمة:

وبقية رمز ليست مادية لأن هذا التعريف يكسر بلدي تجميع. تم العثور على وظيفة الوقت في تميز الكلية / time.h. جمعت على 64 بت RHEL.

 long ntime() {

     struct timeval tp;

     gettimeofday(&tp, (struct timezone *)0);
     return (tp.tv_sec*1000 + tp.tv_usec / 1000);
 }

وقل لي لماذا هذا هو الخطأ؟

وشكرا مقدما.

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

المحلول

ولست متأكدا لماذا يتم التي تحدث الخطأ رابط، ولكن ليس هناك أي سبب معين لجعل البنية timeval ثابت؟ مما يجعلها المحلية هو مجرد أسرع وقت، ويجعل وظيفة threadsafe الخاص بك، مع الحفاظ على كومة (حسنا، BSS) الفضاء.

وتحرير: وهنا تكمن المشكلة. لقد تجاوزت 2GB في الفضاء كومة ثابت. جعل بعض من تلك المخصصة بشكل حيوي، أو تغيير نموذج الذاكرة. في دول مجلس التعاون الخليجي هذا يمكن أن يتم عن طريق تمرير -mcmodel = متوسطة ويجب استخدام على كافة الملفات الكائن. هذا قد يزيد من النفقات العامة إلى حد ما، ولكن.

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