Jestem całkiem nowy w Ubuntu, ale nie wydaje mi się, żeby to zadziałało. Działa dobrze na moich szkolnych komputerach i nie wiem, czego nie robię. Sprawdziłem usr / include i time.h jest w porządku. Oto kod:
#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;
}
Używam CodeBlocks jako mojego IDE do budowania i uruchamiania. Każda pomoc byłaby świetna, dziękuję.
-D_XOPEN_SOURCE=600
. Zobacz także GCC z -std = c99 narzeka, że nie zna struct timespec .Odpowiedzi:
Dodaj
-lrt
na końcu wiersza poleceń g ++. To prowadzi do biblioteki współdzielonej librt.so "Real Time".źródło
C
… Jestem nowy w … co to daje-lrt
?g++ -o main -lrt main.cpp
nie działa dla mnie-lrt
pomain.cpp
- kolejność współdzielonych bibliotek ma znaczenie - zobacz to lub tamto, aby uzyskać więcej informacjiprzykład:
W
gcc
wersji 4.6.1-lrt
musi znajdować się po pliku filefork.cpp, w przeciwnym razie pojawi się błąd łącza.Niektóre starsze
gcc
wersje nie dbają o pozycję.źródło
-lrt
bycie w złej pozycji przyprawiało mnie o ból głowy. Czy jest jakaś motywacja do tego szalonego (cóż, wielu mówi, że kryminalny) ustawienie?*.o
argumentach, funkcje biblioteczne są ignorowane, chyba że zostały wcześniej przywołane, czyli po lewej stronie.Od wersji 2.17 biblioteki glibc łączenie bibliotek
-lrt
nie jest już wymagane.clock_*
Są teraz częścią głównej biblioteki C. Możesz zobaczyć historię zmian biblioteki glibc 2.17, gdzie ta zmiana została dokonana, wyjaśnia powód tej zmiany:Jeśli zdecydujesz się zaktualizować glibc, możesz sprawdzić moduł śledzenia zgodności glibc, jeśli obawiasz się, czy wystąpią jakiekolwiek problemy z używaniem nowszego glibc.
Aby sprawdzić wersję glibc zainstalowaną w systemie, uruchom polecenie:
(Oczywiście, jeśli używasz starego glibc (<2.17), nadal będziesz go potrzebować
-lrt
.)źródło
Napotkałem ten sam błąd. Moje polecenie konsolidatora zawierało bibliotekę rt
-lrt
która jest poprawna i działała przez jakiś czas. Po ponownym zainstalowaniu Kubuntu przestał działać.Osobny wątek na forum sugerował, że
-lrt
należy przyjść po plikach obiektów projektu. Przeniesienie-lrt
komendy na koniec rozwiązało ten problem, chociaż nie wiem, dlaczego.źródło