【问题标题】:library not found for -lrt with QtCreator [mac os]使用 QtCreator [mac os] 找不到 -lrt 的库
【发布时间】:2010-12-03 02:05:58
【问题描述】:

我在使用选项“-lrt”构建的 QT 时遇到了一些问题

我正在使用带有 QT creator 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/库/框架 -L/usr/lib/mysql -lmysqlclient -L/usr/local/lib/ -ltokyocabinet -lz -lbz2 -lrt -lpthread -lm -lc

它以

结尾

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

【问题讨论】:

    标签: c macos compiler-construction qt4 compilation


    【解决方案1】:

    链接器找不到可能是 Posix 实时扩展库的 librt。我认为这在 OSX 上不可用。谷歌搜索来自Apple developer lists

    列表中的问题

    我正在尝试构建一个在我的大学开发的模拟器(在 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 标准, 如果不是,请使用其他界面。

    【讨论】:

    【解决方案2】:

    为什么程序需要 librt?

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

    您可以尝试不使用 -lrt 进行链接,看看是否有效。

    【讨论】:

    • 是的,我已经修改了构建命令以禁用 -lrt 库并且它可以工作 :) 谢谢 ^^
    猜你喜欢
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多