是否可以使用链接器命令文件有条件地链接(如if..else)?
假设我有两个两个条件,我需要通过在链接时检查链接器命令文件中的条件来链接两个不同的部分?
我正在使用飞思卡尔的自定义链接器(星形核心 - gcc的味道)。
__卡努
答案 0 :(得分:1)
我不确定您的自定义链接器与GNU ld链接器有多么不同或类似,但您提到您的工具链类似于或基于GCC。 GNU ld允许您使用--script=scriptfile
或类似选项在命令行上指定链接描述文件。 ld脚本可以INCLUDE
其他脚本文件(或脚本片段)。因此,您可以将常用内容放入common.link.config
(例如),并使用两个单独的链接器配置脚本,如下所示:
/* option1.link.config */
INCLUDE common.link.config
/* stuff specific to option1 follows */
...
不出所料,选项2的脚本可能如下所示:
/* option2.link.config */
INCLUDE common.link.config
/* stuff specific to option2 follows */
...
然后,不是通过链接器命令行传递'condition',而是指定option1.link.config
或option2.link.config
作为链接器配置脚本。
如果您当前没有使用脚本,因为工具链中的链接器内置了适当的默认脚本,您可以使用ld -verbose
转储该默认脚本并将其修改为自定义脚本的起点