Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Embedded 如何将静态库链接到特定部分?_Embedded_Static Libraries_Ld_Esp8266 - Fatal编程技术网

Embedded 如何将静态库链接到特定部分?

Embedded 如何将静态库链接到特定部分?,embedded,static-libraries,ld,esp8266,Embedded,Static Libraries,Ld,Esp8266,我正在为嵌入式平台编写代码。我需要与第三方SDK链接。但是,该SDK中的符号应该进入特定部分(而不是.text)。有可能吗 我为xtensa-lx106处理器使用基于GNU的工具链,并为ESP8266芯片构建。要做到这一点,您必须修改正在使用的链接器脚本 您可能会在链接最终二进制文件的行中的makefile中找到它。链接器脚本是通过-T选项传递的文件 一旦你有了这个,在文本编辑器中打开它并搜索部分指令。您可能会在其中找到一个名为.text的组,其中列出了应该进入最后一个文本段的所有部分 您只需将

我正在为嵌入式平台编写代码。我需要与第三方SDK链接。但是,该SDK中的符号应该进入特定部分(而不是
.text
)。有可能吗


我为xtensa-lx106处理器使用基于GNU的工具链,并为ESP8266芯片构建。

要做到这一点,您必须修改正在使用的链接器脚本

您可能会在链接最终二进制文件的行中的makefile中找到它。链接器脚本是通过
-T
选项传递的文件

一旦你有了这个,在文本编辑器中打开它并搜索
部分
指令。您可能会在其中找到一个名为
.text
的组,其中列出了应该进入最后一个文本段的所有部分

您只需将SDK的代码段名称添加到此列表中即可。如果SDK有多个带有公共前缀的部分(经常出现),甚至可以使用通配符

如果需要,可以使用
.data
组和
.bss
组执行相同的操作

在这些修改之后,您可以重新链接可执行文件,SDK库中的部分应该直接进入
.text
.data


如果愿意,还可以在链接器文件顶部的
内存
声明中创建新组。这使您可以直接控制链接器将使用的确切地址。然后,您可以将SDK库部分直接重定向到已创建的新内存区域中,并且lib始终位于同一地址

如果你不提及你使用的是哪种系统和编译器,你怎么能期望任何人都能回答呢?@Lundin谢谢,编辑。