我试图在Mac OS X上找到标准的C库。我尝试过像“/usr/lib/libc.a”或“/usr/lib/libm.a”这样的路径,但是没有这样的文件系统。 你能告诉我在哪里找到它吗?
然后我在Linux机器上使用Terminal并运行这样的命令:
ar t /usr/lib/libc.a
它返回一个.o文件列表,那些.o文件是这样的:
svc.o xdr.o ...
这些文件的含义是什么? 哪里可以找到它们?
标准库是OS X上libSystem.dylib的一部分。
它看起来像是:
/usr/lib/libSystem.B.dylib
在我的机器上(MacOS X 10.6.7)。
为了回答问题的另一半,OS X通常不使用静态库( .a
)。 因此,OS X上没有libc.a
(或libSystem.a
)。
回答第二个问题:静态库保存在归档文件中,因此.a
。 因此它们只是一堆文件的容器,就像ZIP,TAR,RAR等减去任何压缩。 ar
(代表存档 )实用程序列出的那些文件是打包到存档中的原始文件。 您可以解压缩并获取原始文件。
静态库与动态库形成鲜明对比。 静态库的内容由链接器提取并在链接时包含在您的程序中,就好像它们只是程序构建过程的其他编译阶段的结果一样。
动态库OTOH不仅仅是目标文件的归档,而且它们本身是链接可执行文件,动态链接器将它们映射到链接进程地址空间,并调整符号表以匹配映射地址。
实际上它确实存在于/usr/lib/system/libsystem_c.dylib
。
您可以使用$ nm -gU /usr/lib/system/libsystem_c.dylib
validation: $ nm -gU /usr/lib/system/libsystem_c.dylib
需要了解更多c/c++开发分享Mac OS X上的标准C库在哪里?,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!
以上就是c/c++开发分享Mac OS X上的标准C库在哪里?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/979973.html