W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
現(xiàn)在你已經(jīng)對如何構(gòu)造嵌入式 SQL C 程序有所了解了,你可能希望知道如何編譯它們。在編譯之前,你需要讓該文件通過嵌入式SQL C預(yù)處理器,它會把你用到的SQL轉(zhuǎn)換成特殊的函數(shù)調(diào)用。在編譯之后,你必須鏈接一個包含所需函數(shù)的特殊庫。這些函數(shù)從參數(shù)中取得信息、使用libpq執(zhí)行 SQL命令并且把結(jié)果放在指定的參數(shù)中用來輸出。
該預(yù)處理器程序被稱作ecpg
并且被包括在一個正常的PostgreSQL安裝中。嵌入式 SQL 程序通常帶有擴(kuò)展名.pgc
。如果你有一個程序文件prog1.pgc
,你可以調(diào)用下面的命令對它進(jìn)行預(yù)處理:
ecpg prog1.pgc
這將創(chuàng)建一個文件prog1.c
。如果你的輸入文件不遵循建議的命名模式,你可以用-o
選項顯式地指定輸出文件。
預(yù)處理過的文件可以被正常地編譯,例如:
cc -c prog1.c
產(chǎn)生的 C 源文件從PostgreSQL安裝中包括頭文件,因此如果你把PostgreSQL安裝在一個不被默認(rèn)搜索的位置,你必須在編譯命令行中增加一個選項(例如-I/usr/local/pgsql/include
)。
要鏈接一個嵌入式 SQL 程序,你需要包括libecpg
庫,像這樣:
cc -o myprog prog1.o prog2.o ... -lecpg
再次,你可能不得不在命令行中增加類似-L/usr/local/pgsql/lib
的選項。
你可以使用pg_config
或者pkg-config
加上包名libecpg
來得到你的安裝路徑。
如果你使用make來管理一個大工程的構(gòu)建過程,把下面的隱式規(guī)則包括在你的 makefile 中將會很方便:
ECPG = ecpg
%.c: %.pgc
$(ECPG) $<
ecpg
命令的完整語法可見ecpg。
ecpg庫默認(rèn)是線程安全的。不過,你可能需要使用一些線程命令行選項來編譯你的客戶端代碼。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: