gpt4 book ai didi

linker - 使用链接描述文件重命名符号

转载 作者:行者123 更新时间:2023-12-02 08:25:29 24 4
gpt4 key购买 nike

是否可以使用链接描述文件或映射文件来重命名符号?我正在尝试修改一些用 C++ 和 Fortran 混合编写的代码,以便它可以在 Linux 上与多个 Fortran 编译器一起使用。目前它是为 Solaris Studio 编译器编写的,并且启用了区分大小写的选项。我想自动处理 Fortran 符号名称修改的变化(例如来自 Makefile)。

似乎确实可以创建别名,因此链接器脚本包含:

C_Function_ = c_function;

会起作用的。不幸的是,添加 -T 选项来引用此脚本会导致行为发生一些其他变化,并且由于找不到 libdl.so.2/librt.so.1 而出现错误。是否有某种我需要包含的默认链接器脚本之类的?我已经在 Linux 上尝试过使用 bfd 和 gold 链接器。

最佳答案

您无法真正重命名符号,但您可以为现有符号定义别名,例如

PROVIDE(c_function = C_function_);
...

在链接描述文件中。

如果将此带有 -T 选项的链接器脚本传递给 ld,它将替换原始(默认)链接器脚本。如果您希望链接器脚本扩展默认值,请在不带-T选项的情况下传递它(就像使用附加目标文件一样)。

这样,一切都应该按预期进行。

关于linker - 使用链接描述文件重命名符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41934005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com