我的问题here导致解决方案/新问题,我天真地构建了我用于主机的外部库。
因此当然arm-none-eabi-gcc
编译器遇到elf32-i386
目标文件时会抛出一个拟合。
我最初使用以下方法构建了库:
./configure
make && make check
make install
所以,现在我想我可以做到:
make clean
./configure --host=arm-none-eabi
make && make check
make install
修复它。可悲的是错了。
我也试过了--build=x86
但似乎无论如何都会自动检测到它。
CC=arm-none-eabi
似乎也没有效果。
在使用arm-none-eabi-gcc
进行编译时,为了能够构建此库以进行链接,我需要做什么?
答案 0 :(得分:1)
我能够通过一些特定于configure
脚本的额外选项来实现此功能。
虽然在提出问题时我没有意识到这些问题因此而有所不同,因此需要对可用的具体选项(./configure --help
应始终列出可用的选项)进行一些熟悉或反复试验。
我还应该注意make check
在构建系统上总是会失败,所以不值得。
答案 1 :(得分:1)
您使用错误的交叉编译器。
arm-none-eabi
用于裸机程序。
而是使用arm-none-linux-gnueabi-gcc,它将包含用于解决未定义行为的库。
看看@ Cross compile error "arm-none-eabi-g++ cannot find entry symbol"