使用QtCreator找不到-lrt的库[mac os]

Hou*_*sem 10 c compiler-construction macos compilation qt4

使用选项"-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退出状态

use*_*019 14

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

列表中的问题

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

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

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

  • 有趣的是,POSIX需要`-lrt`才能工作.似乎Apple通过使用POSIX标准`c99`命令调用编译器时忽略该标志来解决这个问题.http://pubs.opengroup.org/onlinepubs/9699919799/utilities/c99.html#tag_20_11_13_01 (3认同)

asv*_*kau 11

为什么程序需要librt?

我知道某些平台(Solaris会想到)需要librt来执行某些功能,这些功能可能存在于操作系统的其他库中.(sem_init()等人是这样的)

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