我正在创build一个共享对象库,它将与我的程序LD_PRELOADed。 在共享库中,我也想使用我的程序中的一些variables。 宣布这种variables的方式是什么? 请注意,共享对象库是与我的程序分开编译的。
是。 您必须将程序与--export-dynamic
链接起来,才能使打开的程序库的程序的符号表可用。 如果您想要精确控制哪些符号可用并使用libtool
进行链接,则可以使用像-export-symbols-regex
这样的参数来指定哪些-export-symbols-regex
可用。 如果在程序加载时库所需的符号不可用,则它将会失败并显示未定义的符号。 有些平台需要稍微不同的链接标志(特别是Windows)。 如果您还没有使用libtool
,请考虑使用它。