如何解决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 举报,一经查实,本站将立刻删除。