如何查看库的内部(特别是C标准库)?

时间:2016-09-09 03:14:07

标签: c++ c unix header-files dynamic-library

我知道头文件包含有关它们调用的函数和类的基本数据。这些函数的实际代码存储在另一个扩展名为.dylib的文件中。当我尝试使用MacBook上的命令行时,我遇到了一个包含所有.dylib文件的目录。我特别感兴趣的两个是C和C ++标准库。然而,在用文本编辑器打开它们时,我得到的只是一堆无法解释的符号。我做了一些研究,我发现所有帖子都提到这些文件是加密的。他们为什么要加密图书馆?有没有办法看到这些图书馆的内部?谢谢

首先发布到本网站,如果我意外地做了社区准则之外的事情,那么道歉。我也是一个编程新手,因为我相信你可以看到。

1 个答案:

答案 0 :(得分:2)

他们没有加密,他们在mac上以mach-o格式(https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/MachORuntime/)以及其他平台上的其他格式进行编译和链接。除非你想对事物进行逆向工程或进行操作系统开发,否则它可能不值得学习。

一般情况下,您需要库的源代码才能查看其中的内容,除非您阅读了反汇编,这可能超出了本问题的范围。

对于macosx上使用的C和C ++标准库,它们是开源的:

https://opensource.apple.com/source/Libc/

http://libcxx.llvm.org/

在类似unix的平台上,它通常是传统的从源代码构建库,但是有一些仅限苹果的库在macosx上不可用,例如cocoa和quicktime库。