准备ecpg开发相关组件
进行ecpg应用程序开发前,需确保开发环境已正确配置GaussDB客户端组件及编译工具链。
ecpg的开发依赖于特定的预处理器、动态链接库及头文件。核心组件的使用路径及编译引用规则如下表所示:
| 组件分类 | 核心文件/库名 | 使用路径 | 编译/引用参数 | 功能 |
|---|---|---|---|---|
| 预处理器 | ecpg | $GAUSSHOME/bin | 无 | 将.pgc源码文件转化为标准 .c文件的二进制工具 |
| 通信与控制库 | libecpg.so、libecpg.so.6和libecpg.so.6.4 | $GAUSSHOME/lib | -lecpg | 提供数据库连接管理、SQL语句执行及事务控制的底层实现。 |
| 类型处理库 | libpgtypes.so、libpgtypes.so.6和libpgtypes.so.6.4 | $GAUSSHOME/lib | -lpgtypes | 提供数值、日期、时间戳、区间等复杂数据类型的运算与转换能力。 |
| 依赖头文件 | sqlca.h、sqlda.h等 | $GAUSSHOME/include/ecpg | -I $GAUSSHOME/include/ecpg | 提供预编译期所需的宏定义、数据结构声明。 |
编译预处理工具准备:
- ecpg开发需要GCC(GNU Compiler Collection)编译器进行编译,建议使用7.3.0版本。
- ecpg客户端工具支持的操作系统与CPU架构(x86/ARM)与服务端发布的支持矩阵保持一致。
已知问题和解决方法:
动态库运行期寻址:操作系统默认不扫描GaussDB库目录。运行编译后的二进制文件前,必须将$GAUSSHOME/lib注入系统环境变量LD_LIBRARY_PATH中。