KyrieChao

2026-10-27 今天被简历折磨的、像🗡在头上似的。明天去模拟面试吧。

2026-10-27约 1 分钟

日常

10 月 27 日,周二:Day 2 库

核心任务:制作并使用静态库和共享库

建立一个简单项目:

library_demo/
├── calc.h
├── calc.c
└── main.c

calc.c 实现 add() 和 sub(),main.c 调用它们。

必须完成:

  1. 编译出 libcalc.a。
  2. 使用静态库链接生成可执行文件,并运行。
  3. 编译出 libcalc.so。
  4. 使用共享库链接生成另一个可执行文件,并运行。
  5. 将共享库放到单独的目录,使用 LD_LIBRARY_PATH 测试运行时搜索。

验收标准

你能不照抄命令,独立完成下面的流程:

calc.c → calc.o → libcalc.a → 静态链接程序
calc.c → calc.o → libcalc.so → 动态链接程序

并能解释 -I、-L、-l、-fPIC、-shared 分别解决什么问题,以及为什么共享库链接成功后仍可能在运行时找不到。

这一天不要求掌握 dlopen() 插件机制,只需能说明它的用途。

靠北 今天被简历折磨的、像🗡在头上似的。明天去模拟面试吧。