Зачем нужна библиотека librt?
Я знаю, что некоторые платформы (Solaris приходит на ум) требуют librt для некоторых функций, которые могут существовать в других библиотеках вашей ОС. (sem_init () и др.):
Вы можете попытаться связать без -lrt и посмотреть, работает ли он.
Линкер не может найти 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 в целевой ОС, а если нет, используйте другой интерфейс.
blockquote>
-lrt
работать. Похоже, Apple решила это, проигнорировав этот флаг, когда компилятор вызывается с помощью стандартной команды POSIX c99
. [Д0] pubs.opengroup.org/onlinepubs/9699919799/utilities/…
– Per Johansson
28 June 2014 в 00:07