
# 准备ecpg开发相关组件
进行ecpg应用程序开发前，需确保开发环境已正确配置GaussDB客户端组件及编译工具链。
ecpg的开发依赖于特定的预处理器、动态链接库及头文件。核心组件的使用路径及编译引用规则如下表所示：
表1ecpg核心组件路径和编译引用规则 
| 组件分类   | 核心文件/库名                                         | 使用路径                    | 编译/引用参数                    | 功能                             |
|:---|:---|:---|:---|:---|
| 预处理器   | 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中。
