linux - arm-eabi-gcc : cannot find entry symbol _start

标签 linux gcc arm

我已经安装了两个工具链来在 x86 主机上编译 ARM/Linux。现在,我必须使用 arm-eabi-gcc 为 ARM/Linux (Android) 编译一个程序。这个编译器没有任何库可以在 Linux 中使用,所以我需要执行下一个命令来编译 C 程序:

arm-eabi-gcc hello.c -I/home/alejandro/android-ndk-r10c/platforms/android-21/arch-arm/usr/include -nostdlib -Wl,-rpath-link=/usr/arm-linux-gnueabi/lib -L/usr/arm-linux-gnueabi/lib -lc

但是当我编译它时,我收到一个链接器警告:

ld: warning: cannot find entry symbol _start; defaulting to 000080b0

我应该怎么做才能正确链接所有内容?

最佳答案

_start 存在于 C 运行时库中。您需要将它与您的二进制文件链接起来。在 Linux 上,这通常位于名为 crt0.a 的文件中,并且可能是由您的编译器或 LibC 构建的。

关于linux - arm-eabi-gcc : cannot find entry symbol _start,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27488753/

相关文章:

c - GNU 内联汇编程序——汇编指令的语法?

dll - 是否有与 gcc --kill-at 等效的 Visual C++?

android - 尝试为 amrv6 编译 x264 时如何修复所选处理器不支持 `movw '?

GCC 发出 ARM idiv 指令

arm - 现代处理器中 L1 缓存大小的原因

c - 为什么八进制转储输出整数变量的ascii码而不是二进制码?

linux - CDC 类视频 :pid to use for my STM32F3 based equipment

python - fatal error : Python. h : No such file or directory, python-Levenshtein 安装

java - ArchLinux - 使用 pacman -S 安装最新的 JDK

linux - 如何过滤 ls 命令的输出以仅显示二月份创建的文件?