libpq 与 fe-misc.c
磨砺技术珠矶,践行数据之道,追求卓越价值
回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页
经过一番验证,对 libpq 的编译过程有了进一步的了解。
src/interfaces/libpq 目录下,有很多的 c 源文件。
如:fe-misc.c ,fe-print.c 等等。
那么这些文件和最终编译好的libpq.so 有何关系呢?
从源文件目录下的几个文件来看:
src/interfaces/libpq/Makefile中,有:
... OBJS=.... fe-misc.o ...
src/interfaces/libpq/nls.mk中,有:
... GETTEXT_FILES=.... fe-misc.c
因此,做了如下的实验:
把fe-misc.c 文件改名 fe-gao.c
上述 两个 fe-misc 的名字 分别变成: fe-gao.o 和 fe-gao.c
重新编译,运行。没有任何问题。
从 libpq-int.h 中可以看到,凡是涉及到 fe-misc.c 的函数调用,都是在此文件中
声明外部函数:
extern ...
可以这样认为:
编译链接 libpq.so文件的时候,是在当前目录下寻找 那些 Makefile中声明的.o文件,
来发现调用关系,链接成 libpq.so。
回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页
磨砺技术珠矶,践行数据之道,追求卓越价值