首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

静态库转换成共享库的符号是否隐藏?

静态库转换成共享库的符号是否隐藏取决于编译时的选项和设置。在一般情况下,静态库中的符号是隐藏的,而共享库中的符号是可见的。

静态库是在编译时将库的代码和数据直接嵌入到可执行文件中,因此静态库中的符号在链接时会被解析并与可执行文件进行静态链接。这意味着静态库中的符号只对链接器可见,对于其他程序无法访问。

而共享库是在运行时被动态加载到内存中的,因此共享库中的符号是可见的,可以被其他程序或共享库调用。共享库中的符号可以通过符号表进行查找和访问。

然而,可以通过编译选项和设置来控制共享库中的符号是否可见。例如,在GCC编译器中,可以使用"-fvisibility=hidden"选项将共享库中的符号隐藏起来,只有通过指定的接口才能访问。这样可以提高共享库的安全性和封装性。

总结起来,静态库转换成共享库的符号默认情况下是可见的,但可以通过编译选项和设置来隐藏符号。隐藏符号可以提高共享库的安全性和封装性,但也会增加使用共享库的复杂性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • C/C++编程可用的Linux自带工具

    GNU Binary Utilities或binutils是一整套的编程语言工具程序,用来处理许多格式的目标文件。当前的版本原本由在Cygnus Solutions的程序员以Binary File Descriptor library(libbfd)所撰写。这个工具程序通常搭配GCC、make、和GDB这些程序来使用。 相关网址:https://www.gnu.org/software/binutils/ addr2line - (可将一个地址转换成对应的源代码文件名和行号)Converts addresses into filenames and line numbers. ar - (打包静态库工具,用法如:ar cru libx.a a.o b.o d.o)A utility for creating, modifying and extracting from archives. c++filt - (解码C++名字工具,使用nm看到是编码后的名字)Filter to demangle encoded C++ symbols. nm - (列出所有符号)Lists symbols from object files. objdump - (显示目标文件的相关信息,亦可反汇编)Displays information from object files. ranlib - (为静态库文件产生索引)Generates an index to the contents of an archive. readelf - (显示ELF文件的内容)Displays information from any ELF format object file. size - (列出文本段、数据段等大小)Lists the section sizes of an object or archive file. strings - (列出任何二进制文件内的可显示字符串)Lists printable strings from files. strip - (删除符号表工具,文件可以瘦身,但gdb将不能工作)Discards symbols. gprof - (性能分析工具)Displays profiling information. objcopy - (复制目标文件,过程中可以修改)Copies and translates object files. dlltool - (创建Windows动态库工具)Creates files for building and using DLLs. gold - (用来替代ld的链接工具,不过只能用于生成可执行程序,而不能用于生成共享库)A new, faster, ELF only linker, still in beta test. nlmconv - (可以转换成NetWare Loadable Module目标文件格式)Converts object code into an NLM. windmc - (产生Windows消息资源)A Windows compatible message compiler. windres - (Windows资源文件编译器)A compiler for Windows resource files.

    02
    领券