静态库转换成共享库的符号是否隐藏取决于编译时的选项和设置。在一般情况下,静态库中的符号是隐藏的,而共享库中的符号是可见的。
静态库是在编译时将库的代码和数据直接嵌入到可执行文件中,因此静态库中的符号在链接时会被解析并与可执行文件进行静态链接。这意味着静态库中的符号只对链接器可见,对于其他程序无法访问。
而共享库是在运行时被动态加载到内存中的,因此共享库中的符号是可见的,可以被其他程序或共享库调用。共享库中的符号可以通过符号表进行查找和访问。
然而,可以通过编译选项和设置来控制共享库中的符号是否可见。例如,在GCC编译器中,可以使用"-fvisibility=hidden"选项将共享库中的符号隐藏起来,只有通过指定的接口才能访问。这样可以提高共享库的安全性和封装性。
总结起来,静态库转换成共享库的符号默认情况下是可见的,但可以通过编译选项和设置来隐藏符号。隐藏符号可以提高共享库的安全性和封装性,但也会增加使用共享库的复杂性。
领取专属 10元无门槛券
手把手带您无忧上云