使用QtCreator找不到-lrt的库

使用选项“-lrt”构建的QT让我遇到一些麻烦

我正在使用带有QT创建者1.2.1的mac os 10.6,heeeeeeelp!

这是完整的构建命令:

g ++ -headerpad_max_install_names -o AMiningCoreTest main.o tokenizer.o DictionnaryToolBox.o mysql.o btree.o BTreeDataTable.o tcaccess.o -L / Library / Frameworks -L / usr / lib / mysql -lmysqlclient -L / usr / local / lib / -ltokyocabinet -lz -lbz2 -lrt -lpthread -lm -lc

它结束了

ld:找不到-lrt collect2的库:ld返回1退出状态

为什么程序需要librt?

我知道有些平台(Solaris可以想到)需要librt来实现操作系统中其他库中可能存在的某些function。 (sem_init()等人是这样的)

您可以尝试在没有-lrt的情况下进行链接,看看它是否有效。

链接器找不到可能是Posix实时扩展库的librt。 我认为这不适用于OSX。 谷歌搜索从Apple开发者列表中提供了这个

列表中的问题

我正在尝试构建一个在我的大学开发的模拟器(在Linux上)并且我通过链接器得到错误,似乎无法找到librt.a – 在代码中用于clock_gettime()并且我想知道是否有这样的库的端口,或者其他一些类似的function,允许我甚至在Mac OS X上编译。

回答librt.a是包含POSIX Advanced Realtime [RT]选项function的库的System V名称。 您询问的具体function是[TMR]选项的一部分。 如果Mac OS X支持它,它将在libSystem.B,dylib,而不是librt.a。 Mac OS X不支持该function。

您的代码应该检查是否在目标操作系统中实现了实现UNIX标准之外的可选项的可选项,如果不是,则使用不同的接口。