gpt4 book ai didi

android - clock_gettime 的 Ubuntu-to-Android 交叉编译链接

转载 作者:太空宇宙 更新时间:2023-11-04 11:30:11 25 4
gpt4 key购买 nike

我最近用 C 语言开发了一个项目,它使用了 linux 中的 clock_gettime() 函数。我的 Ubuntu 桌面上的链接是使用链接器标志实现的:

gcc -lrt foo.c

我很高兴在下面的帖子中了解到我可以为 Android 交叉编译我的项目。

http://benno.id.au/blog/2007/11/13/android-native-apps

我已经使用以下命令在琐碎的项目上尝试过:

arm-linux-gnueabi-gcc -static foo.c -o foo

而不是命令:

arm-none-linux-gnueabi-gcc -static foo.c -o foo

在链接中提到,它们确实可以很好地编译和链接,但是当我尝试使用需要 clock_gettime() 和链接的项目时:

-ltr

它失败了:

undefined reference to `clock_gettime'

我读过由 -lrt 指定的库在 Android 上不存在,我发现其他地方的帖子声称人们在 Android 项目上使用 clock_gettime(),但我没能找到为此链接到正确的库。谁能告诉我我需要链接到什么才能让 ARM 完成这项工作?

或者就适用于 Android 的替代方案提出任何其他建议。

我非常有兴趣尽可能利用我的桌面 linux 项目中现有的 makefile,但如果可能的话,重新配置它们以使用交叉编译工具链,所以任何允许这样做的建议都非常有用非常感谢。

最佳答案

Android 的“仿生”C 库有一个用于clock_gettime() 系统调用的包装器。如果您使用 Android NDK 构建,您将自动获得它。否则,您需要以某种方式将仿生库添加到您的工具链。

或者,您可以通过汇编直接调用系统调用(从内存中,第一个参数进入 R0,第二个参数进入 R1,您将系统调用编号放入 R7,发出“SWI $0”并在 R0 中找到结果代码) .

或者:您为什么要为 clock_gettime 而烦恼?有什么理由不能简单地使用 gettimeofday()?

关于android - clock_gettime 的 Ubuntu-to-Android 交叉编译链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11803018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com