导出地图可以只选择您要链接的功能吗?
Posted
技术标签:
【中文标题】导出地图可以只选择您要链接的功能吗?【英文标题】:Can an export map select only the functions you want to link to? 【发布时间】:2016-01-26 11:15:29 【问题描述】:我正在用 Googletest 编写一个测试工具,需要控制符号表以避免冲突(代码库主要是 C,在 Linux 上有点 C++)。
我正在寻找一种方法来仅链接文件中我想要的函数,并且还能够创建自定义函数集以链接每个测试。
我知道这有点宽泛,但欢迎任何建议或想法!
【问题讨论】:
【参考方案1】:您可以使用链接器的版本脚本来定义应在符号表中导出哪些符号。
这样的版本脚本可以是这样的:
global:
symb1;
symb2;
symb3;
local: *;
;
本例仅导出符号 symb1-3,符号表中省略所有其他符号。
现在将此脚本指定为链接器的版本脚本,共享库的示例:
cc -shared obj1.o obj2.o obj3.o -o library.so -Wl,--version-script=<scriptname>
通过符号版本可以获得更多控制权,更多详细信息可以在 ld 文档中找到:http://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_25.html
【讨论】:
以上是关于导出地图可以只选择您要链接的功能吗?的主要内容,如果未能解决你的问题,请参考以下文章
我可以打开带有指向 GPS 位置的链接的离线地图应用程序吗?