【问题标题】:undefined reference to `clock_gettime' for arm arm-linux-gnueabi未定义对 arm arm-linux-gnueabi 的“clock_gettime”的引用
【发布时间】:2016-01-04 12:59:19
【问题描述】:

我试图使用 arm-lunux-gnueabi 交叉编译工具链交叉编译 ARM 架构的文件。但我得到以下错误:-

undefined reference to `clock_gettime'

请指导我应该包含哪些头文件或库以及如何摆脱此错误。

我正在使用以下命令进行交叉编译:-

make ARCH=arm CROSS_COMPILE -C /path/to/source

感谢您的帮助。

【问题讨论】:

    标签: linux arm cross-compiling


    【解决方案1】:

    正如documentation 所说:

    注意

    大多数系统要求程序与 librt 库链接到 使用这些功能。

    所以使用-lrt 标志链接到rt 库。

    【讨论】:

    • 我已经用过see -arm-linux-gnueabi-gcc -g -O2 -Wall -D_GNU_SOURCE -pthread -I../include -I../../ -pthread -lrt futex_requeue_pi .c ../include/futextest.h
    • @PradeepGoswami -l 参数放在最后,在您的 .c 或 .o 文件之后。此外,您不应该尝试编译 .h 文件。
    • @nos 我正在使用这个命令 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -C kernel/tools/testing/selftests/futex -lrt 但我最终无法移动它,如何将它移到最后
    • @PradeepGoswami 我不知道执行的特定命令会给你这个错误,也不知道你的特定 Makefile 是什么样的,所以很难给出任何建议..
    • @nos 没问题。我在这方面有一些进展,感谢提供一些问题线索。