我想通过链接/加载两个文件file-12.o
和file-1.o
来创建file-2.o
,以便file-1.o
中的函数引用可以由{{ 1}}已解析,但其他符号在后续加载中仍待解析。
这可能吗?我正在linux(ubuntu 18.04)上使用gnu工具链。
我尝试使用file-2.o
,但无法解析函数调用(如objdump -S所示),即callq指令仍显示ld -r -o file-12.o file-1.o file-2.o
。
这个What is Partial Linking in GNU Linker?似乎表明这是不可能的,或者至少这位作者不知道该怎么做(“这还告诉我,GCC不会在最终链接之前解析函数调用,无论是TODO原理,可能迫使它解决?”)
作为一个小背景,我试图在节点11/12环境中链接到hdr_histogram。作为性能挂钩的一部分,他们开始使用hdr_histogram,并且我的节点插件正在链接到节点版本,而不是我希望链接的库。因此,如果您知道在链接优先级时让node-gyp在节点库之前对我的库进行优先级排序的方法,那么该解决方案也将对我有用。