繁体   English   中英

如何在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中使用Informix ESQL / C或EXEC SQL中的$ )来指示SQL语句需要预处理的位置转换为适当的C库函数调用和C变量定义等系列esql脚本是自动将Informix ESQL / C源转换为第一个C,然后是目标代码和可执行文件的编译器(在主要是与C编译器的选项相同,其中大部分都传递给C编译器不变)。

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

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

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

     esql -c esqlc_source.ec 

    根据需要添加其他C编译器选项。 请注意, -gesql脚本截获,您必须努力将其传递给C编译器。

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

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

     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会在你正确设置时通知你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM