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索引页

磨砺技术珠矶,践行数据之道,追求卓越价值

 

posted @ 2012-07-11 12:14  健哥的数据花园  阅读(357)  评论(0编辑  收藏  举报