OS X中的GNU Linker等效命令

耶维奥蒂

我正在阅读以下有关操作系统的在第43页中,他们使用以下命令将带注释的机器代码转换为原始机器代码文件:

$ ld -o basic.bin -Ttext 0x0 --oformat binary basic.o

在MacBook Pro(运行Mavericks)中运行该命令时,我得到:

ld: unknown option: -Ttext

我做了一些研究,发现OS X的链接器不允许使用脚本文件作为链接器脚本。

互联网上的其他一些帖子建议使用以下“正确”格式:

$ ld -T text 0x0 --o format binary -o basic.bin basic.o

虽然这对我也不起作用。

我也尝试binutils通过安装homebrew,但GNU链接器似乎未提供该安装

该命令可以在Ubuntu 14.04中正确运行,但是如果可能的话,我想继续在OS X中进行开发。

有没有一种方法可以使用OS X的链接器获得相同的结果,并且可能使用不同的标志?

更新:

我可以使用以下命令gobjcopybin生成bin binutils

$ gobjcopy -j .text -O binary basic.o basic.bin

但是我找不到在代码中偏移标签地址的方法,例如我可以使用GNU ld -Ttext 0x1000

--set-start <hex>没有运气就尝试过

$ gobjcopy -j .text --set-start 0x1000 -O binary basic.o basic.bin
卡洛斯·F。

我正在遵循相同的os-dev.pdf指南,并且遇到了与您相同的问题。

问题的根本是无论如何我们都需要编译交叉编译的gcc,因此解决方案就是这样做。

OSDev上有很好的指南但是如果您正在运行最新版本的OSX,我会在Github上为此准备一个特定的指南

这里是命令,不过在将整个文本粘贴到计算机上之前,请先对其进行测试!在Github链接上可以找到完整的说明,但是由于Stack Overflow似乎喜欢答案中嵌入的解决方案,因此就在这里。

另外,如果您遇到任何错误,请将其报告给我(此处或有Github问题),以便我为他人修复。

brew install gmp
brew install mpfr
brew install libmpc
brew install gcc

export CC=/usr/local/bin/gcc-4.9
export LD=/usr/local/bin/gcc-4.9

export PREFIX="/usr/local/i386elfgcc"
export TARGET=i386-elf
export PATH="$PREFIX/bin:$PATH"

mkdir /tmp/src
cd /tmp/src
curl -O http://ftp.gnu.org/gnu/binutils/binutils-2.24.tar.gz # If the link 404's, look for a more recent version
tar xf binutils-2.24.tar.gz
mkdir binutils-build
cd binutils-build
../binutils-2.24/configure --target=$TARGET --enable-interwork --enable-multilib --disable-nls --disable-werror --prefix=$PREFIX 2>&1 | tee configure.log
make all install 2>&1 | tee make.log

cd /tmp/src
curl -O http://mirror.bbln.org/gcc/releases/gcc-4.9.1/gcc-4.9.1.tar.bz2
tar xf gcc-4.9.1.tar.bz2
mkdir gcc-build
cd gcc-build
../gcc-4.9.1/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --disable-libssp --enable-languages=c --without-headers
make all-gcc 
make all-target-libgcc 
make install-gcc 
make install-target-libgcc 

您可以在以下位置找到GNU的binutils和交叉编译的gcc /usr/local/i386elfgcc/bin

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SymPy中的“ GenerateMatrix”等效命令

来自分类Dev

BSD中的等效命令`route -n`

来自分类Dev

RHEL 中“成员”的等效命令

来自分类Dev

MAC OS X上的sed错误无效命令u

来自分类Dev

Intellij中的cmd shift A-Sublimetext中的等效命令?

来自分类Dev

P4的等效命令搁置在GIT中

来自分类Dev

在VMS中,unix的等效命令是什么

来自分类Dev

bcdedit中的bcdboot等效命令是什么?

来自分类Dev

这将是Swift 3中addValueEventListener的等效命令

来自分类Dev

apt-get 中 --upgradable 的等效命令

来自分类Dev

Mac OS X(10.8)中是否有与“ iptables”等效的命令?

来自分类Dev

在GNU并行环境中使用多个等效命令(多个线程池)处理多个输入

来自分类Dev

在SQL Server中,Oracle wm_concat的等效命令是什么?

来自分类Dev

在SQL Server中,Oracle wm_concat的等效命令是什么?

来自分类Dev

在Linux centos 6,64中,如何将cmd中的以下“ for / f”命令转换为等效命令?

来自分类Dev

在Mac OS X上等效于adduser命令?

来自分类Dev

未在OS X 10.9的GNU屏幕中设置PATH

来自分类Dev

Mac OS X在Ubuntu中“说”命令?

来自分类Dev

从OS X中的终端清除命令

来自分类Dev

Mac OS X中命令的重击完成

来自分类Dev

在OS X 10.6.1的终端中是否有等效的usermod

来自分类Dev

Linux上有与Mac OS X命令“ textutil”等效的Linux吗?

来自分类Dev

截断Azure DocumentDB的等效命令

来自分类Dev

R中Julia的等效命名向量是什么?

来自分类Dev

Windows的OS X`say`命令

来自分类Dev

X的gnu屏幕命令

来自分类Dev

如何在OS X的GNU Emacs中pbpaste UTF-8字符?

来自分类Dev

在Mac OS X上与EnterCriticalSection最佳等效?

来自分类Dev

在OS X中获取Mac地址的Shell命令

Related 相关文章

热门标签

归档