我在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。