Как мне собрать (получить/загрузить) библиотеку time.h?

Я пытаюсь создать проект в Linux через Makefile.

Я продолжаю получать cannot find <sys/time.h> ошибку.

Я поспрашивал, и мне сказали, что у моего проекта нет доступа к папкам библиотеки.

Поэтому я пытаюсь решить эту проблему, используя библиотеку времени локально в папке моего проекта. Я очень новичок в Linux. Так что, пожалуйста, простите мой вопрос, если он звучит наивно.

Я нашел это, но я не знаю, какие файлы мне нужны и как собрать библиотеку. http://sourceware.org/git/?p=glibc.git;a=tree;f=time;h=c950c5d4dd90541e8f3c7e1649fcde4aead989bb;hb=master

  • Где я могу найти библиотеку/пакет time.h?
  • Как собрать библиотеку?

person coffeenet    schedule 18.06.2012    source источник


Ответы (4)


В дистрибутивах, производных от Debian, apt-get install libc6-dev получит необходимые файлы заголовков. Они понадобятся вам практически для любого проекта на C. В общем случае Debian поиск пакетов или apt-file может подсказать вам, где найти отсутствующие библиотеки и т. д. файлы.

person tripleee    schedule 18.06.2012

Прежде всего, попробуйте обновить вашу систему.

sudo apt-get update 
sudo apt-get install build-essential

Это должно убедиться, что у вас есть все библиотеки, правильные компиляторы и т.д.

В идеале это должно решить вашу проблему.

Если нет, то вместо того, чтобы делать

#include<time.h>

попробуй сделать,

#include<sys/time.h>

Если и это не работает, то во время компиляции используйте флаг "-lrt" для разрешения ваших библиотек.

Делайте все это в указанном порядке.

person Community    schedule 18.06.2012
comment
* К сожалению, у меня нет прав на выполнение sudo. * Я пробовал и time.h, и sys/time.h. Но, оба они потерпели неудачу. * Я попробую добавить этот флаг в команду make, это CFLAG? - person coffeenet; 18.06.2012
comment
Я пробовал сделать USE_LOCAL_HEADERS=0 LDFLAGS='-L.' BASE_CFLAGS=-m32 CFLAGS='-fopenmp -Wall -lrt' К сожалению, это не сработало. - person coffeenet; 18.06.2012
comment
Простая справочная страница рассказала бы вам, как написать флаг -lrt cc [флаг...] файл... -lrt [библиотека...] - person ; 18.06.2012

time.h — это заголовочный файл, принадлежащий библиотеке GNU C. Как пользователь системы, вы должны иметь доступ для чтения к файлам заголовков.

Чтобы убедиться, что заголовочный файл установлен:

find /usr/include -name time.h

Если приведенная выше команда find ничего не возвращает, вероятно, библиотека GNU C не установлена. В этом случае вам нужно будет найти кого-то с привилегиями root на коробке, чтобы установить его (плюс все зависимости) для вас. Если ваша система основана на Redhat, вам будет интересно использовать yum для установки библиотеки; если в Ubuntu или Debian, вы захотите использовать apt.

person Eric Smith    schedule 18.06.2012
comment
rmc104:~/ioquake3dev_clean[10032]% find /usr/include -name time.h /usr/include/sys/time.h /usr/include/linux/time.h /usr/include/time.h /usr/ include/bits/time.h Я добавил BASE_CFLAGS += -I/usr/include/sys/time.h в Makefile, но ошибка не изменилась. - person coffeenet; 18.06.2012

вы можете попробовать 'man time.h' для помощи.

person lijingcheng    schedule 18.06.2012