簡體   English   中英

用C創建共享庫,sqlite3出現問題

[英]Creating shared library in C, problems with sqlite3

我第一次嘗試創建一個共享庫,以將其與SWI-Prolog外部函數接口一起使用,但是我無法正確連接sqlite3。 我實際上是這樣做的:

gcc -c -fpic task_resources.prolog.c -I/usr/lib/swi-prolog/include/ -lsqlite3
gcc -shared -o task_resources.so task_resources.prolog.o
cp /home/markmb/task_resources.so /usr/lib/swi-prolog/lib/amd64/task_resources

然后我有一個虛擬的序言文件:

dbg_task_resources :- 
   use_foreign_library(foreign(task_resources)),
   getTaskState("id01",Result),
   write(Result).

在序言解釋器中,我將文件和函子稱為:

[prueba].
dbg_task_resources.

我得到的結果是:

prolog: symbol lookup error: /usr/lib/swi-prolog/lib/amd64/task_resources: undefined symbol: sqlite3_open

那么,我應該如何鏈接sqlite3?

正如Collin所說,我在第二個gcc語句中需要-sqlite3:

gcc -shared -o task_resources.so task_resources.prolog.o -lsqlite3

很抱歉,很簡單的問題,但這是一個特定的問題,我在Google上找不到解決方案

再次謝謝你科林

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM