1

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をどのようにリンクすればよいですか?

4

1 に答える 1

1

Collinが言ったように、2番目のgccステートメントに-sqlite3が必要でした。

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

簡単な質問で申し訳ありませんが、これは特定の質問であり、Googleを見て解決策を見つけることができませんでした

コリンありがとうございます

于 2013-02-26T21:21:01.300 に答える