主要观点:在 OpenBSD 上,通过链接 libc 可与内核交互,这让其他语言的支持者感到困扰,但其并非链接全部 libc。
关键信息:
- 以 /bin/ls 和 /usr/lib/libc.a 为例,ls 静态链接但小于 libc.a,并非链接全部。
- libc.a 是 ar 归档文件,包含一堆对象文件,如 malloc.o 和 open.o 等,且 malloc 代码多于 open。
- 链接时通过 ranlib 生成符号索引,链接归档文件时概念上会提取对象文件并添加到命令行,好的链接器更复杂些。
- 静态链接时将 libc 拆分为多个对象文件可更精细链接,动态链接规则不同,且 cool kids 只做静态链接。
- OpenBSD 上链接 libc 更像指南,并非魔法,可写非 C 代码实现相同功能。
重要细节:通过具体代码示例如 cc -c funtime.c 等展示了相关操作过程,包括生成库、提取对象文件及查看内容等。帖子时间为 2025 年 2 月 12 日 18:54 并更新。标签有 [c]、[openbsd]、[programming]。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。