我正在关注一个网站(http://wiki.osdev.org/GCC_Cross-Compiler),以了解如何为不同的架构交叉编译一些代码。因此,第一步是为特定目标下载和编译Binutils。
该站点说要为i686-elf分配varible TARGET,因为binutils将能够以$ TARGET指定的格式处理代码。
export PREFIX="$HOME/opt/cross"
export TARGET=i686-elf
export PATH="$PREFIX/bin:$PATH"
所以,我的问题是
我可以获得Binutils支持的目标列表吗?
如果变量TARGET可以包含任何东西,或者必须是Binutils支持的东西,那么在编译binutils的源代码时会出现错误,如果TARGET是binutils不理解的东西吗?
答案 0 :(得分:0)
这个问题从未得到答案,因此我将为来自各种搜索引擎的人提供大学尝试。如果从源软件下载或克隆binutils
git clone git://sourceware.org/git/binutils-gdb.git
然后阅读binutils的解释
https://sourceware.org/binutils/binutils-porting-guide.txt
您将找到答案。
TL; DR
在 bfd 目录中读取 config.bfd 的内容
所有受支持的目标都列在其中
cd /path/to/git/clone/of/binutils/bfd
通知,上述目录中带有 elf32- [SOME_NAME] .c 和 elf64- [SOME_NAME] .c 的文件是您支持的目标。
Ex
elf32-cr16.c
将翻译为
--target=cr16-elf