我有一个带有弱符号的二进制文件,我希望能够在运行时将其与运行相关的共享库链接。
$nm testrun
...
w basic2.test
...
我的第一个测试是.o
在静态链接时使用一个文件,该文件有效,但我需要共享它。
因此,我的第二个测试是获得一个定义了该符号的共享库,并在编译时将其与-lmy
(libmy.so) 链接,这实际上也很有效。
第三步尝试在编译时不链接并使用 ld_preload 技巧,但这不起作用。
nm libmy.so
...
00000550 T basic2.test
...
我真的不知道为什么这个特定的不工作,看起来动态加载器应该有足够的信息来使用 libmy.so 中的那个设置 testruns 弱符号。
我的最终目标,我想这需要更多的工作是在启动时加载一个小函数,该函数使用 dlsym 检查适当的符号并将其设置在那里。
有什么提示吗?