我在使用它使用选项“-lrt”构建的 QT 时遇到了一些麻烦
我正在使用 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退出状态
链接器找不到 librt,这可能是 Posix 实时扩展库。我认为这在 OSX 上不可用。谷歌搜索从Apple开发者列表
给出了这个列表中的问题
我正在尝试构建一个在我的大学开发的模拟器(在 Linux 上) 我的链接器出现错误,似乎无法找到 librt.a - 在 该代码用于clock_gettime(),我想知道是否 有一个这样的库的端口,或者其他一些类似的功能 甚至允许我在 Mac OS X 上进行编译。
回答 librt.a 是包含 POSIX 的库的 System V 名称 高级实时 [RT} 选项功能。你具体的功能是 询问是 [TMR] 选项的一部分。如果Mac OS X支持它,它 将位于 libSystem.B、dylib 中,而不是 librt.a 中。有问题的函数 Mac OS X 不支持。
您的代码应该检查是否可以选择实现某些东西 目标操作系统中实现了高于 UNIX 标准的功能, 如果不是,请使用不同的界面。
为什么程序需要librt?
我知道某些平台(例如 Solaris)需要 librt 来实现操作系统中其他库中可能存在的某些功能。 (sem_init()等都是这样的)
您可以尝试在不使用 -lrt 的情况下进行链接,看看它是否有效。