我该怎么编译&并在Linux平台上运行ESQL / C程序?

时间:2017-05-19 22:16:06

标签: c compilation informix embedded-sql

我已经在IBM官方网站上查看了ESQL / C编程指南。我没有找到编译和运行的确切命令。我是否需要安装任何程序包才能运行?谁能告诉我在Ubuntu中运行这些命令的命令?

1 个答案:

答案 0 :(得分:3)

ESQL / C(C中的嵌入式SQL)对大部分代码使用C代码,但使用特殊标记(Informix ESQL / C中的$或标准和Informix ESQL中的EXEC SQL / C)指示SQL语句需要将预处理转换为适当系列的C库函数调用和C变量定义等的位置。esql脚本是自动将Informix ESQL / C源转换为第一个C的编译器。然后是目标代码和一个可执行文件(在与C编译器选项主要相同的选项下,大多数选项不加改变地传递给C编译器。)

您需要安装Informix ClientSDK(CSDK)才能编译ESQL / C程序。安装服务器时默认安装,所以如果你在一台有工作的Informix服务器的机器上(如果它还有一个可用的C编译器和开发环境),那么你很可能没问题。 。它也可作为单独的独立产品提供,如果您没有,并且不想要您的计算机上的Informix服务器,则可以安装该产品。如果服务器是本地的(测试速度更快,破坏生产系统的危险性更小等),则可以进行测试。

假设您已安装CSDK,则需要将环境变量INFORMIXDIR设置为指向安装软件的位置(除非您选择在/usr/informix中安装它或创建符号链接{{1}指向安装CSDK的位置)。您还要将/usr/informix添加到PATH中。您现在已准备好编译:

  • 使用$INFORMIXDIR/bin命令将.ec(ESQL / C源)文件编译为对象:

    esql

    根据需要添加其他C编译器选项。请注意esql -c esqlc_source.ec 脚本拦截-g,您必须努力将其传递给C编译器。

  • 考虑编译使用带有esql脚本的ESQL / C标头的.c(C源代码)文件。这将自动将标头的正确目录传递给C编译器。更有可能的是,您将使用:

    esql
  • 要进行链接,请使用${CC} -c c_source.c -I${INFORMIXDIR}/incl/esql 脚本执行此操作。它将为编译器提供正确的库(和目标文件),它将作为链接器调用:

    esql

    您可以照常添加其他库和库目录。

你已经编译了程序;现在你需要运行它。您可能无法自动找到库。您需要考虑将某些目录添加到esql -o program c_source.o esqlc_source.o 或修改LD_LIBRARY_PATH以获取额外的目录,或者从将自动拾取的位置创建符号链接到Informix库(例如{{ <}>或/etc/ld.so.conf,或者/usr/lib)到库的安装位置。

您需要至少添加:

  • /usr/lib64
  • /usr/local/lib

在某些情况下,您可能还需要添加$INFORMIXDIR/lib下的其他库目录,但通常不会。

然后您应该能够运行该程序。使用$INFORMIXDIR/lib/esql可以让您知道何时设置正确。

相关问题