5

我正在创建一个共享对象库,它将与我的程序一起进行 LD_PRELOAD。在那个共享库中,我还想使用我程序中的一些变量。声明这些变量的方式是什么。请注意,共享对象库是与我的程序分开编译的。

4

1 回答 1

2

是的。您必须链接您的程序--export-dynamic以使打开的库可以访问程序的符号表。如果您希望准确控制哪些符号可用并libtool用于链接,您可以使用参数-export-symbols-regex来指定哪些可用。如果程序加载时库所需的符号不可用,它将因未定义的符号而失败。某些平台需要稍微不同的链接标志(尤其是 Windows)。libtool如果您还没有,请考虑使用它来简化此操作。

于 2012-06-05T13:57:20.323 回答