سؤال

أنا جديد جدا على أوبونتو، لكنني لا أستطيع أن أحصل على هذا للعمل. إنه يعمل بشكل جيد على أجهزة الكمبيوتر المدرسية وأنا لا أعرف ما لا أفعله. لقد تفحصت USR / تشمل والوقت. هناك على ما يرام. هنا هو الرمز:

#include <iostream>
#include <time.h>
using namespace std;

int main()
{
    timespec time1, time2;
    int temp;
    clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time1);
    //do stuff here
    clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time2);
    return 0;
}

أنا أستخدم CodeBlocks ك IDE الخاص بي للبناء والتشغيل أيضا. أي مساعدة ستكون كبيرة، وشكرا لكم.

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

المحلول

يضيف -lrt إلى نهاية سطر الأوامر G ++. هذه الروابط في المكتبة المشتركة "في الوقت الحقيقي".

نصائح أخرى

مثال:

c++ -Wall filefork.cpp -lrt -O2

ل gcc الإصدار 4.6.1، -lrt يجب أن يكون بعد filefork.cpp. وإلا تحصل على خطأ في الارتباط.

بعض أكبر سنا gcc الإصدار لا يهتم الموقف.

واجهت نفس الخطأ. فعلت أمر روابط بلدي مكتبة RT المدرجة -lrt وهو صحيح وكان يعمل لفترة من الوقت. بعد إعادة تثبيت Kubuntu، توقف عن العمل.

اقترح موضوع المنتدى المنفصل -lrt اللازمة أن تأتي بعد ملفات كائن المشروع. نقل -lrt حتى نهاية الأمر إصلاح هذه المشكلة بالنسبة لي على الرغم من أنني لا أعرف تفاصيل السبب.

منذ Glibc الإصدار 2.17، ربط المكتبة -lrt لم يعد مطلوبا.

ال clock_* هي الآن جزء من مكتبة C الرئيسية. يمكنك ان ترا ال تغيير تاريخ Glibc 2.17 حيث تم تنفيذ هذا التغيير سبب هذا التغيير:

+* The `clock_*' suite of functions (declared in <time.h>) is now available
+  directly in the main C library.  Previously it was necessary to link with
+  -lrt to use these functions.  This change has the effect that a
+  single-threaded program that uses a function such as `clock_gettime' (and
+  is not linked with -lrt) will no longer implicitly load the pthreads
+  library at runtime and so will not suffer the overheads associated with
+  multi-thread support in other code such as the C++ runtime library.

إذا قررت ترقية glibc، فيمكنك التحقق من تعقب التوافق من glibc إذا كنت تشعر بالقلق ما إذا كانت هناك أي مشاكل باستخدام Newer Glibc.

للتحقق من إصدار Glibc المثبت على النظام، قم بتشغيل الأمر:

ldd --version

(بالطبع، إذا كنت تستخدم Glibc القديمة (<2.17)، فستظل تحتاج -lrt.)

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