ld 无法识别选项

ld cannot recognize the options

我正在阅读此 Tuto,我正在尝试 link 使用此命令的应用程序:ld test.o –o test.bin,linker 无法识别-o 选项:

ld: cannot find –o: No such file or directory

使用 ld -help 选项 -o 存在,但我不明白为什么我会遇到这个问题。

这是 linker 版本。

$ ld -version
GNU ld (GNU Binutils for Ubuntu) 2.24
Copyright 2013 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later  version.
This program has absolutely no warranty.

我的好眼力和痛苦的经历告诉我,您一定有 copied/pasted 一些来自 MS-Office 的文本,其中破折号 (-) 已转换为另一个破折号,即 unicode 或任何。请注意文本中破折号的长度。

实际上,您所指的 tuto 是错误的,例如这一行:

ld –Ttext 0x7c00 --oformat=binary test.o –o test.bin

注意 2 个臭名昭著的 "long-dashes",它们不能在命令行上工作。

按原样输入您的命令,然后是重新输入的命令。注意到什么了吗?

ld test.o –o test.bin   # long dash, fails
ld test.o -o test.bin   # good one, short dash

由于破折号不正确,ld 假定这是一个目标文件并尝试打开它,因此出现错误。