[英]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.