簡體   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