Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos OS-X上的GNU链接器气体_Macos_Gcc_Linker_Gnu Assembler_Mach O - Fatal编程技术网

Macos OS-X上的GNU链接器气体

Macos OS-X上的GNU链接器气体,macos,gcc,linker,gnu-assembler,mach-o,Macos,Gcc,Linker,Gnu Assembler,Mach O,我正在尝试编写一些“独立”(free-standing)代码,鉴于OS-X链接器不支持链接器脚本或平面二进制输出,我认为最好使用GNU链接器 有没有办法只安装/编译GNU链接器而不安装所有GCC 编译后的GNU链接器能够理解OS-X版GAS汇编程序输出的目标文件吗 如果我不能只编译链接器,那么编译GCC的最佳方法是什么 注意:我想编译,而不是使用包系统。我在我的一个实验性pet内核项目中使用MacPorts的cross/i386 elf gcc和cross/i386 elf binutils端口

我正在尝试编写一些“独立”(free-standing)代码,鉴于OS-X链接器不支持链接器脚本或平面二进制输出,我认为最好使用GNU链接器

有没有办法只安装/编译GNU链接器而不安装所有GCC

编译后的GNU链接器能够理解OS-X版GAS汇编程序输出的目标文件吗

如果我不能只编译链接器,那么编译GCC的最佳方法是什么


注意:我想编译,而不是使用包系统。

我在我的一个实验性pet内核项目中使用MacPorts的
cross/i386 elf gcc
cross/i386 elf binutils
端口,在我的
Makefile
中使用它们:

CC=             i386-elf-gcc-4.3.2
AS=             i386-elf-as
LD=             i386-elf-ld

我甚至没有尝试过混合和匹配来自不同工具链的组件。你也许能以某种方式让它工作起来,但如果你能安装一套“干净”的交叉编译工具,并合理地确保它们能很好地相互配合,那么就不值得这么麻烦了。

补充:GNU链接器将不接受Mach-O格式,因此不可能进行混合和匹配。但是由于binutils同时包含链接器和汇编程序,因此没有理由不同时包含这两个。安装gcc不仅仅是汇编语言所必需的。没错,您不需要gcc。除非您想使用GCC前端进行组装或链接,例如,当您想使用预处理的程序集文件(
.S
)时。@ughoavgfhw我可能还想为我的这个项目合并C+程序集,所以仅使用binutils是不够的。