微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GNU 作为 ld 标志,用于在 NetBSD 上为 arm 进行汇编

如何解决GNU 作为 ld 标志,用于在 NetBSD 上为 arm 进行汇编

我正在尝试在运行 NetBSD 9.1 的 RaspBerry Pi 3 B+ 上使用 GNU 汇编器 (as) 组装一个简单的 Hello World 程序
我需要向 as 或 ld 添加哪些标志才能使它们为我正在使用的架构正确组装代码

$ as -o hllwrld.o hllwrld.s
$ ld -o hllwrld hllwrld.o
$ ./hllwrld
-sh: Cannot execute ELF binary ./hllwrld

$ uname -a
NetBSD rpi 9.1 NetBSD 9.1 (RPI) #0: Sun Oct 18 19:24:30 UTC 2020  mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/evbarm/compile/RPI evbarm

这是aarch64还是arm64?

我知道有手册页,但我只是在学习汇编,所以我不知道我什至需要寻找哪些配置/标志/参数。

感谢您的帮助。

解决方法

这可能由于多种原因而失败,所有这些都归结为缺少参数和/或 ld 的标志,并且可能包括运行时链接器信息、启动代码和库。

试试这个提示,看看幕后发生了什么:

$ cc -v -o hllwrld hllwrld.o
,

Klaus 的 answer 应该为您的系统提供足够的线索,但您可能还想查看 NetBSD/i386 和 amd64 的工作示例:

github.com/robohack/experiments: thello.s

如果您在 emacs 中打开文件并批准局部变量设置,那么 compile-command 将设置为命令行,该命令行将在兼容的 NetBSD 系统上组装、链接和运行示例程序。

>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。