如何在 Linux 平台上编译 & 和 运行 一个 ESQL/C 程序?
How can I compile & and run an ESQL/C program on Linux Platform?
我已经在 IBM 官方网站上查看了 ESQL/C 编程指南。我没有找到确切的编译命令和 运行。我需要安装任何软件包到 运行 吗?谁能告诉我 运行 这些 Ubuntu 中的命令?
ESQL/C(在 C 中嵌入 SQL)大部分代码使用 C 代码,但使用特殊标记(Informix ESQL/C 中的 $
或 EXEC SQL
在标准和 Informix ESQL/C) 中指示 SQL 语句需要预处理以转换为一系列适当的 C 库函数调用和 C 变量定义等。 esql
script 是自动将 Informix ESQL/C source 转换为先 C 然后 object 代码和可执行文件的编译器(在选项下主要与 C 编译器的选项相同,其中大部分传递给C编译器不变)。
您需要安装 Informix ClientSDK (CSDK) 才能编译 ESQL/C 程序。它在安装服务器时默认安装,所以如果您使用的机器上有工作的 Informix 服务器(如果它也有工作的 C 编译器和开发环境),那么您很可能没问题。它也可以作为单独的独立产品提供,如果您的机器上没有也不想安装 Informix 服务器,您可以安装它。测试服务器是否在本地有很多好处(访问速度更快,破坏生产系统的危险更小,等等)。
假设你已经安装了 CSDK,你需要设置环境变量 INFORMIXDIR
指向软件的安装位置(除非你选择在 /usr/informix
中安装它或者创建一个符号链接 /usr/informix
指向 CSDK 的安装位置)。您还需要将 $INFORMIXDIR/bin
添加到您的 PATH 中。您现在可以编译了:
使用 esql
命令将 .ec
(ESQL/C 源)文件编译为 object:
esql -c esqlc_source.ec
根据需要添加其他 C 编译器选项。请注意 -g
被 esql
脚本拦截,您必须努力将其传递给 C 编译器。
考虑编译使用 ESQL/C header 和 esql
脚本的 .c
(C 源代码)文件。这会自动将 headers 的正确目录传递给 C 编译器。您更有可能使用:
${CC} -c c_source.c -I${INFORMIXDIR}/incl/esql
链接,使用esql
脚本来完成。它将向编译器提供正确的库(和 object 文件),它将作为链接器调用:
esql -o program c_source.o esqlc_source.o
您可以照常添加其他库和库目录。
程序编译成功;现在你需要 运行 它。您很可能不会自动找到这些库。您将需要考虑将一些目录添加到 LD_LIBRARY_PATH
或修改 /etc/ld.so.conf
以获取额外的目录,或者从将自动获取的位置创建指向 Informix 库的符号链接(例如 /usr/lib
或 /usr/lib64
,或者 /usr/local/lib
) 到库的安装位置。
您至少需要添加:
$INFORMIXDIR/lib
$INFORMIXDIR/lib/esql
在某些情况下,您可能还需要添加在 $INFORMIXDIR/lib
下找到的其他库目录,但通常不需要。
然后您应该可以 运行 该程序。使用 ldd program
会在您设置正确时通知您。
我已经在 IBM 官方网站上查看了 ESQL/C 编程指南。我没有找到确切的编译命令和 运行。我需要安装任何软件包到 运行 吗?谁能告诉我 运行 这些 Ubuntu 中的命令?
ESQL/C(在 C 中嵌入 SQL)大部分代码使用 C 代码,但使用特殊标记(Informix ESQL/C 中的 $
或 EXEC SQL
在标准和 Informix ESQL/C) 中指示 SQL 语句需要预处理以转换为一系列适当的 C 库函数调用和 C 变量定义等。 esql
script 是自动将 Informix ESQL/C source 转换为先 C 然后 object 代码和可执行文件的编译器(在选项下主要与 C 编译器的选项相同,其中大部分传递给C编译器不变)。
您需要安装 Informix ClientSDK (CSDK) 才能编译 ESQL/C 程序。它在安装服务器时默认安装,所以如果您使用的机器上有工作的 Informix 服务器(如果它也有工作的 C 编译器和开发环境),那么您很可能没问题。它也可以作为单独的独立产品提供,如果您的机器上没有也不想安装 Informix 服务器,您可以安装它。测试服务器是否在本地有很多好处(访问速度更快,破坏生产系统的危险更小,等等)。
假设你已经安装了 CSDK,你需要设置环境变量 INFORMIXDIR
指向软件的安装位置(除非你选择在 /usr/informix
中安装它或者创建一个符号链接 /usr/informix
指向 CSDK 的安装位置)。您还需要将 $INFORMIXDIR/bin
添加到您的 PATH 中。您现在可以编译了:
使用
esql
命令将.ec
(ESQL/C 源)文件编译为 object:esql -c esqlc_source.ec
根据需要添加其他 C 编译器选项。请注意
-g
被esql
脚本拦截,您必须努力将其传递给 C 编译器。考虑编译使用 ESQL/C header 和
esql
脚本的.c
(C 源代码)文件。这会自动将 headers 的正确目录传递给 C 编译器。您更有可能使用:${CC} -c c_source.c -I${INFORMIXDIR}/incl/esql
链接,使用
esql
脚本来完成。它将向编译器提供正确的库(和 object 文件),它将作为链接器调用:esql -o program c_source.o esqlc_source.o
您可以照常添加其他库和库目录。
程序编译成功;现在你需要 运行 它。您很可能不会自动找到这些库。您将需要考虑将一些目录添加到 LD_LIBRARY_PATH
或修改 /etc/ld.so.conf
以获取额外的目录,或者从将自动获取的位置创建指向 Informix 库的符号链接(例如 /usr/lib
或 /usr/lib64
,或者 /usr/local/lib
) 到库的安装位置。
您至少需要添加:
$INFORMIXDIR/lib
$INFORMIXDIR/lib/esql
在某些情况下,您可能还需要添加在 $INFORMIXDIR/lib
下找到的其他库目录,但通常不需要。
然后您应该可以 运行 该程序。使用 ldd program
会在您设置正确时通知您。