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