Я довольно новичок в Ubuntu, но я не могу заставить это работать. Он отлично работает на моих школьных компьютерах, и я не знаю, что я не делаю. Я проверил usr / include и time.h там просто отлично. Вот код:
#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 для сборки и запуска. Любая помощь будет отличной, спасибо.
-D_XOPEN_SOURCE=600
тоже часто нужно . Также см. GCC с жалобами на -std = c99 о незнании struct timepec .Ответы:
Добавьте
-lrt
в конец g ++ командную строку. Это ссылки в общей библиотеке librt.so "Real Time".источник
C
... что делает-lrt
?g++ -o main -lrt main.cpp
не работает для меня-lrt
послеmain.cpp
- порядка разделяемых библиотек дела - увидеть это или что для получения более подробной информациипример:
Для
gcc
версии 4.6.1,-lrt
должно быть после filefork.cpp, иначе вы получите ошибку ссылки.Некоторые старые
gcc
версии не заботятся о положении.источник
-lrt
не в правильном положении, вызвало у меня головную боль. Есть ли мотивы для этого сумасшедшего (ну, многие говорят, криминального) сеттинга?*.o
аргументах, библиотечные функции игнорируются, если на них не ссылаются ранее, то есть слева.Начиная с версии glibc 2.17, ссылки на библиотеки
-lrt
больше не требуются.Теперь они
clock_*
являются частью основной библиотеки C. Вы можете увидеть историю изменений в glibc 2.17, где это изменение было сделано, объясняет причину этого изменения:Если вы решите обновить glibc, то вы можете проверить трекер совместимости glibc, если вас беспокоит, будут ли какие-либо проблемы с использованием более нового glibc.
Чтобы проверить версию glibc, установленную в системе, выполните команду:
(Конечно, если вы используете старый glibc (<2.17), то вам все равно понадобится
-lrt
.)источник
Я столкнулся с той же ошибкой. В моей команде компоновщика была включена библиотека rt
-lrt
которая работала некоторое время. После переустановки Kubuntu перестал работать.В отдельной ветке форума предлагалось,
-lrt
чтобы после файлов объектов проекта приходили. Перемещение-lrt
до конца команды решило эту проблему для меня, хотя я не знаю деталей, почему.источник