📜  ceedling 链接器标志 (1)

📅  最后修改于: 2023-12-03 15:29:57.290000             🧑  作者: Mango

了解 Ceedling 链接器标志

Ceedling 是一款用于帮助 C 语言开发者编写测试代码的优秀工具。它基于 Ruby 语言开发,使用了一系列的 Ruby Gem 包,包括 RubyGems、Rake、Unity 等。

当我们使用 Ceedling 进行编译链接时,我们可以指定一些链接器标志。这些标志可以影响程序的编译、链接等行为。

以下是一些常用的 Ceedling 链接器标志:

-Wl,--allow-multiple-definition

此标志允许链接器在发生符号重定义错误时继续进行链接。如果在链接过程中遇到相同名称的符号,那么该标志会使链接器忽略这些错误信息,继续进行链接操作。

# 使用 -Wl,--allow-multiple-definition 标志
$ ceedling test:all LINKER_FLAGS=-Wl,--allow-multiple-definition
-Wl,-Map=output.map

此标志会生成一个以 output.map 为名的映射文件。映射文件会记录每个程序段、数据段在程序中的地址和大小、程序入口地址以及符号表等信息,方便进行调试和优化。

# 使用 -Wl,-Map=output.map 标志
$ ceedling test:all LINKER_FLAGS=-Wl,-Map=output.map
-Wl,-gc-sections

此标志会告诉链接器在链接时删除没有使用的代码段和数据段,从而减小程序的大小。这对于嵌入式系统和只有有限存储空间的系统非常有用。

# 使用 -Wl,-gc-sections 标志
$ ceedling test:all LINKER_FLAGS=-Wl,-gc-sections
-Wl,-Ttext=0x80000000

此标志会指定程序的起始地址,即程序入口地址。这对于嵌入式系统和需要指定程序入口地址的系统非常有用。

# 使用 -Wl,-Ttext=0x80000000 标志
$ ceedling test:all LINKER_FLAGS=-Wl,-Ttext=0x80000000

以上介绍的是一些常用的 Ceedling 链接器标志。使用这些标志可以帮助我们更好地控制程序的编译、链接和优化。