gpt4 book ai didi

c - 在 C 中隐藏函数

转载 作者:IT王子 更新时间:2023-10-29 00:26:42 25 4
gpt4 key购买 nike

我的应用程序具有函数 f1 void f1 ()

此外,我还有一个使用 LD_PRELOAD 加载的库。

库有几个代码文件和几个头文件,编译成.so文件。

其中一个头文件还使用了一个名为 f1 的函数,其签名与上述相同。最新的f1仅在库中使用。 (我无法将其更改为静态方法)

问题是,当我加载库(使用 LD_PRELOAD)时,库中的 f1 会覆盖应用程序的 f1

有没有办法将库的 f1 配置为仅对库可见?

最佳答案

如果您完全可以修改头文件,请将函数设置为static,使其仅在该编译单元中可见,或者用__attribute__ ((visibility ("hidden") ))(仅限 GCC)使其仅在该库中可见:

__attribute__ ((visibility ("hidden"))) void f1();

关于c - 在 C 中隐藏函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15322196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com