华为云云数据库GaussDBecpg预处理以及编译执行_云淘科技

准备嵌入式SQL-C源程序,以.pgc为后缀名,ecpg负责将其转换成可被编译器编译的C语言程序。

生成的C语言程序被gcc编译器编译为可执行文件,运行该可执行文件实现客户端程序访问数据库。示例可参考常用示例章节。

ecpg预处理以及编译处理过程

预处理:ecpg -I $GAUSSHOME/include -o test.c test.pgc

ecpg预处理的参数选项如下:

ecpg [OPTION]...

其中OPTION参数选项如下:

-o OUTFILE:预处理嵌入式SQL-C程序将结果写入OUTFILE,OUTFILE为C语言文件。
-I DIRECTORY:头文件的搜索路径。
-c:预处理嵌入式SQL-C程序自动生成C语言文件。
–version:查看ecpg当前版本。

编译:gcc -I $GAUSSHOME/include/ecpg -I $GAUSSHOME/include -I $GAUSSHOME/include/postgresql/server/ -L $GAUSSHOME/lib -lecpg -lrt -lpq -lpgtypes -lpthread test_ecpg.c -o test_ecpg
执行:./test

ecpg作为编译预处理工具,若在预处理或编译过程中出现找不到头文件或者函数实现的报错信息,可以根据需要指定头文件,或者链接动态库。
ecpg需要gcc、ld等编译预处理工具,建议gcc使用7.3.0版本。
使用ecpg开发应用程序所依赖的其他动态库和头文件,常见的位于$GAUSSHOME/include/libpq, $GAUSSHOME/include。
编译过程中常见的动态库依赖:-lpq、-lpq_ce、-lpthread。若开发过程中需要使用libpq通信库,则需要连接-lpq和-lpq_ce;若开发过程中需要使用多线程连接,则需要连接-lpthread。

父主题: 基于ecpg开发

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家