今天编译PROC程序时,遇到这个错误。最后发现原因是.pc文件里声明变量块时,不识别结构体。

今天时间紧知识用第一种方法暂时解决了。晚上抽时间用第二种方法优化一下代码。

查了很多资料,发现只有这个答案可以解决我的问题。

感谢:http://blog.sina.com.cn/s/blog_9a4d43d801019po6.html

当.pc文件中使用结构体里,经常会报错,不识别结构体。

针对这个问题,暂时找到两种解决方法
1、在.pc文件中包含定义结构体的头文件,但是包含绝对路径,如:
EXEC SQL BEGIN DECLARE SECTION;
#include "/home/esurfing_greenet/province_ubas/include/db_oper.h"
EXEC SQL END DECLARE SECTION;
这种方式不利于维护,当程序路径更改时,需要修改源代码
 
2、在.pc文件中包含定义结构体的头文件,不包含绝对路径,但是在makefile中包含头文件路径,如:
EXEC SQL BEGIN DECLARE SECTION;
EXEC SQL include "db_oper.h"
EXEC SQL END DECLARE SECTION;
 
makefile中修改如下:
%.cpp : %.pc
        proc include ./include iname=$< oname=$@ sqlcheck=full  threads=yes userid=$(USERID) code=cpp 
05-27 22:51