Что такое библиотека C & ldquo; rt & rdquo ;? [Дубликат]

9
задан Houssem 1 October 2009 в 18:43
поделиться

2 ответа

Зачем нужна библиотека librt?

Я знаю, что некоторые платформы (Solaris приходит на ум) требуют librt для некоторых функций, которые могут существовать в других библиотеках вашей ОС. (sem_init () и др.):

Вы можете попытаться связать без -lrt и посмотреть, работает ли он.

11
ответ дан asveikau 21 August 2018 в 06:28
поделиться
  • 1
    Да, я изменил команду сборки, чтобы отключить библиотеку -lrt, и она работает :) Спасибо ^^ – Houssem 4 October 2009 в 10:46

Линкер не может найти librt, который, вероятно, является библиотекой расширений реального времени Posix. Я не думаю, что это доступно на OSX. Googling дает это из списков разработчиков Apple

Вопрос из списка

Я пытаюсь создать симулятор, разработанный в моем университете (в Linux) и я получаю ошибку компоновщика, который, похоже, не может найти librt.a - в коде используется clock_gettime (), и я хотел бы знать, есть ли порт такой библиотеки или какая-либо другая аналогичная функция, которая позволяет мне скомпилировать даже на Mac OS X.

Ответ librt.a - это имя System V библиотеки, содержащее функции опций POSIX Advanced Realtime [RT}. Конкретная функция, о которой вы спрашиваете, является частью опции [TMR]. Если Mac OS X поддерживает его, это будет в libSystem.B, dylib, а не librt.a. Эта функция не поддерживается Mac OS X.

Ваш код должен проверить, не реализованы ли дополнительные функции для реализации выше и выше стандарта UNIX в целевой ОС, а если нет, используйте другой интерфейс.

13
ответ дан maelv 21 August 2018 в 06:28
поделиться
  • 1
    Как ни странно, POSIX требует -lrt работать. Похоже, Apple решила это, проигнорировав этот флаг, когда компилятор вызывается с помощью стандартной команды POSIX c99. [Д0] pubs.opengroup.org/onlinepubs/9699919799/utilities/… – Per Johansson 28 June 2014 в 00:07
Другие вопросы по тегам:

Похожие вопросы: