首页 > 其他 > 详细

pgbouncer中增加消息格式解析和调试信息后,导致链接失败的问题

时间:2015-07-12 14:22:00      阅读:294      评论:0      收藏:0      [点我收藏+]

由于之前增加了解析postgresQL消息的功能,为打印每个消息的内容,在另外一个protooutput.h的文件中增加了每种消息格式的inline打印函数。为了知道代码中每次采用log_debug宏打印出来的信息的location。于是修改了log_debug宏,增加打印__FILE__,__LINE__,__func__的功能。增加完成后代码的大致情况如下:

打印消息内容的protooutput.h文件中有下面的函数:

技术分享log_debug修改后的代码如下:

技术分享其中LOG_TRACE_RUN宏就是新增加的打印location的宏。定义如下:

技术分享

结果直接编译,却显示链接时提示没有定义_print_functionCallPK函数,但是把log_debug宏中新增加的LOG_TRACE_RUN宏去掉后,却能够顺利的链接完成。但是从上面的代码看完全没有错误哈,为什么链接不上呢?

后面想了想链接不上_print_functionCallPK函数,肯定是编译protooutput.h文件的时候出现了问题,多半是inline导致的。于是就把print_functionCallPK函数从inline修改成普通函数,再次编译却成功链接了。

这是为啥呢?有没有大神知道原因,请赐教?


pgbouncer中增加消息格式解析和调试信息后,导致链接失败的问题

原文:http://my.oschina.net/u/918218/blog/477537

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!