[英]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編譯器選項。 請注意, -g
被esql
腳本截獲,您必須努力將其傳遞給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.