在Linux环境下使用GCC编译共享库时,有时我们需要控制哪些函数应该被导出,以供其他程序调用,而哪些函数应该保持私有不可见。本文将介绍一种方法来实现这一目的。
在GCC中,可以使用__attribute__((visibility("visibility_type")))
来设置函数的可见性。其中,visibility_type
可以是以下几种值之一:
default
:函数将被导出,并可供其他程序调用。hidden
:函数将被导出,但默认情况下不可见。其他程序可以通过使用特定的技术来访问该函数。protected
:函数将被导出,并且对于使用共享库的程序是可见的,但对于其他共享库是不可见的。
下面是一个示例代码,演示如何在共享库中控制导出函数的可见性:
#include <stdio.h>
// 导出函数
__attribute__((visibili