Updated on 2024-05-07 GMT+08:00

ecpg Preprocessing and Compiling

Prepare C programs with embedded SQL statements with the extension .pgc. ecpg converts them into C programs that can be compiled by the C compiler.

The generated C program is compiled into an executable file by the compiler. The executable file is run to enable the client program to access the database. For details, see Examples.

  • ecpg preprocessing and C compilation process
    1. Preprocessing: ecpg -I $GAUSSHOME/include -o test.c test.pgc
      To execute ecpg preprocessing, run the following command:
      ecpg [OPTION]...
      The options are as follows:
      • -o OUTFILE: writes the result to OUTFILE, which is a C file.
      • -I DIRECTORY: path of the header file.
      • -c: automatically generates a C file.
      • --version: checks the current ecpg version.
    2. Compilation: 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
    3. Execution: ./test
    • ecpg is a compilation preprocessing tool. If an error message is displayed indicating that the related header file or function implementation cannot be found during preprocessing or compilation, you can specify the header file or link the dynamic library as required.
    • ecpg requires compilation preprocessing tools such as GCC and ld. You are advised to use GCC 7.3.0.
    • Other dynamic libraries and header files on which ecpg depends are usually stored in $GAUSSHOME/include/libpq and $GAUSSHOME/include.
    • Common dynamic library dependencies during compilation include: -lpq, -lpq_ce, and -lpthread. If the libpq communications library is required during development, connect to -lpq and -lpq_ce. If the multi-thread connection is required during development, connect to -lpthread.