【发布时间】:2020-04-30 13:17:43
【问题描述】:
我正在为 STM32 使用 arm-none-eabi-gcc 我正在尝试通过将选项“--cref”传递给链接器来生成交叉引用表,但出现此错误
arm-none-eabi-gcc: error: unrecognized command line option '--cref'; did you mean '--xref'?
'--xref' 是 '--cref' 的替代品吗?
【问题讨论】:
我正在为 STM32 使用 arm-none-eabi-gcc 我正在尝试通过将选项“--cref”传递给链接器来生成交叉引用表,但出现此错误
arm-none-eabi-gcc: error: unrecognized command line option '--cref'; did you mean '--xref'?
'--xref' 是 '--cref' 的替代品吗?
【问题讨论】:
--cref 是GNU binutils linker、ld 的选项,但不是gcc 的选项
当 ld 使用
gcc 选项-Wl,其用法如下:
-Wl,<ld-option>[,<ld-option>...]
因此,在您的 gcc 命令行中传递 -Wl,--cref 而不是 --cref。
这将使链接器在标准输出上打印交叉引用表。如果你
宁愿把它放在一个映射文件中,然后从链接器请求一个映射文件以及交叉引用
表将附加到它:-Wl,--cref,-Map=mapfile
(--xref 很久以前是gcc 的一个选项。它不再是一个选项,而是命令行
parser 仍然会建议它作为你在解析未知数时的意思
选项。)
【讨论】: