Frage

Ich bin ziemlich neu in Ubuntu, aber ich kann das nicht scheinen, um zu arbeiten. Es funktioniert auf meinem Computer der Schule in Ordnung, und ich weiß nicht, was ich nicht tue. Ich habe überprüft usr / include und time.h ist es einfach gut. Hier ist der Code:

#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;
}

Ich bin mit Codeblöcken als meine IDE als auch zu bauen und zu betreiben. Jede Hilfe wäre toll, danke.

War es hilfreich?

Lösung

In -lrt bis Ende g ++ Befehlszeile. Diese Links in den librt.so "Real Time" Shared Library.

Andere Tipps

Beispiel:

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

Für gcc Version 4.6.1 muss -lrt sein, nachdem filefork.cpp sonst Sie einen Link Fehler.

Einige ältere gcc Version kümmert sich nicht um die Position.

begegnete ich den gleichen Fehler. Mein Linker Befehl die rt-Bibliothek enthalten -lrt hatte was richtig ist und es funktionierte für eine Weile. Nach dem erneuten Installation von Kubuntu es aufgehört zu arbeiten.

Ein eigener Forum-Thread vorgeschlagen, die -lrt benötigt, nachdem die Projektobjektdateien zu kommen. Das Verschieben der -lrt bis zum Ende des Befehls dieses Problem für mich festgelegt, obwohl ich weiß nicht, die Details, warum.

Da glibc Version 2.17 wird die Bibliothek Verknüpfung -lrt nicht mehr erforderlich.

Die clock_* sind nun Teil der C-Bibliothek. Sie können die 2.17 Geschichte der glibc ändern wo diese Änderung wurde gemacht, erklärt den Grund für diese Änderung:

+* 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.

Wenn Sie sich entscheiden, glibc zu aktualisieren, dann können Sie das überprüfen Kompatibilität Tracker von glibc , wenn Sie besorgt sind, ob es irgendwelche Probleme wäre die neuere glibc verwenden.

die glibc Version auf dem System installiert zu überprüfen, führen Sie den Befehl:

ldd --version

(Natürlich, wenn Sie mit alten glibc (<2,17), dann werden Sie noch brauchen -lrt.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top