我已经在IBM官方网站上查看了ESQL / C编程指南。我没有找到编译和运行的确切命令。我是否需要安装任何程序包才能运行?谁能告诉我在Ubuntu中运行这些命令的命令?
答案 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
可以让您知道何时设置正确。