今天编译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