我在 gcc 上编译的 c 代码给出了错误Cannot find entry symbol _start defaulting to 00000
。谁能告诉我为什么以及如何纠正它?
命令行是arm-none-eabi-gcc -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp file path
,目标平台是 a-8 sitara cortex 处理器。
我在 gcc 上编译的 c 代码给出了错误Cannot find entry symbol _start defaulting to 00000
。谁能告诉我为什么以及如何纠正它?
命令行是arm-none-eabi-gcc -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp file path
,目标平台是 a-8 sitara cortex 处理器。
编译器抛出上述错误的唯一原因是操作系统为运行您的代码而生成的启动代码(_start 函数)找不到默认或注册的函数 main。因此,您可以使用 _start 函数代替 main 函数,但编译命令应该是 gcc -nostartfiles filename.c 但是使用 _start 会有很多异常,所以最好使用 main 代替。
-none- 部分表示您的工具链不是为特定操作系统构建的,因此您必须定义一个 _start 入口点。对于为特定操作系统构建的非裸机工具链,_start 由标准库提供,以便在一切设置好时调用 main。