библиотека не найдена для -lrt с QtCreator [mac os] - PullRequest
9 голосов
/ 01 октября 2009

У меня проблемы с QT, который он собирает с опцией "-lrt"

Я использую Mac OS 10.6 с QT Creator 1.2.1, heeeeeeelp!

это полная команда сборки:

g ++ -headerpad_max_install_names -o AMiningCoreTest main.o tokenizer.o DictionnaryToolBox.o mysql.o btree.o BTreeDataTable.o tcaccess.o -L / Библиотека / Рамки -L / usr / lib / mysql -lmysqlclient -L / usr / local / lib / -ltokyocabinet -lz -lbz2 -lrt -lpthread -lm -lc

и заканчивается

ld: библиотека не найдена для -lrt collect2: ld вернул 1 статус выхода

Ответы [ 2 ]

13 голосов
/ 01 октября 2009

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

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

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

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

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

11 голосов
/ 02 октября 2009

Зачем программе нужен librt?

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

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

...