如何在共享对象库中共享变量

时间:2012-06-05 11:42:01

标签: c linux gcc shared-objects

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

1 个答案:

答案 0 :(得分:2)

是。您必须将程序与--export-dynamic链接,以使程序的符号表可供打开的库访问。如果您希望准确控制哪些符号可用并使用libtool进行链接,则可以使用-export-symbols-regex之类的参数来指定可用的符号。如果程序加载时库所需的符号不可用,则它将失败并带有未定义的符号。某些平台需要稍微不同的链接标志(尤其是Windows)。如果您尚未使用libtool,请考虑使用{{1}}。