binutils支持的目标列表

inf*_*ged 6 binutils

我正在关注一个网站(http://wiki.osdev.org/GCC_Cross-Compiler),以了解如何交叉编译不同体系结构的代码.因此,第一步是为特定目标下载和编译Binutils.

该网站称使用i686-elf分配变量TARGET,因为binutils将能够以$ TARGET指定的格式处理代码.

export PREFIX="$HOME/opt/cross"
export TARGET=i686-elf
export PATH="$PREFIX/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是

我可以获得Binutils支持的目标列表吗?

如果变量TARGET可以包含任何东西,或者必须是Binutils支持的东西,即在编译binutils的源代码时是否会出错,如果TARGET是binutils不理解的东西?

ipa*_*tch 5

从来没有看到这个问题的答案,所以我会给来自不同搜索引擎的人进行大学尝试。如果从源软件下载或克隆 binutils

git clone git://sourceware.org/git/binutils-gdb.git
Run Code Online (Sandbox Code Playgroud)

然后阅读 binutils 的解释

https://sourceware.org/binutils/binutils-porting-guide.txt
Run Code Online (Sandbox Code Playgroud)

你会找到答案的。


长话短说

读取bfd目录下config.bfd的内容


所有支持的目标都列在

cd /path/to/git/clone/of/binutils/bfd
Run Code Online (Sandbox Code Playgroud)

请注意上述目录中带有elf32-[SOME_NAME].celf64-[SOME_NAME].c的文件,这些是您支持的目标

前任

elf32-cr16.c
Run Code Online (Sandbox Code Playgroud)

会翻译成,

--target=cr16-elf
Run Code Online (Sandbox Code Playgroud)