IF Computer > IF/Prolog > Manuals > IF/Prolog V4.1 マニュアル > IF/Prolog Interfaces > IF/PrologからC言語へのインタフェ−ス > バックトラックしないProlog述語をC言語で書く > あなたのプログラムが動かない場合

あなたのプログラムが動かない場合

IF/Prolog by Siemens
MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

・コンパイラに、ディレクトリ$PROROOT/cの中のライブラリ−ファイルとcpred.hを指定しましたか?

・機種によってCコンパイラは異なります。オプションの省略形も違ってきます。

・新しく定義した述語を使って、"undefined_predicateが出たら、Cboot関数の中に何か誤りがあります。Cの関数とCPRIM/CPREDの引数に同じ名前を使っていないかチェックして下さい。特に大文字と小文字をチェックして下さい。

・新しい述語を含んだファイルには、Cboot関数は1つだけですか?

・もし複数の述語を使っているならば、Cboot関数の中に、その述語それぞれに対してCPRIMまたはCPREDがありますか?

・すでに使われている名前を述語に使っていませんか?

・コンピュ−タが PCS Cadmus ならば、fFコンパイルオプションを使っていますか?  (2バイト/4バイト整数)

・ライブラリ−関数AtStrを使いましたか?もし使っていれば、IF/Prologが実際に使う項目を使っているということを忘れてはなりません。それをそのままにしておくことは、あなたのプログラムの責任です。たとえば、C言語でのストリングの表現形式は、Pascalの表現形式に変えることがあるかもしれません。しかし、その項目のコピ−に対して操作をするか、または用がすんだら変換したものを元に戻さなければなりません。

・Prologで整数を返してもらいたい時に、期待していたよりはるかに大きな値を受け取った時には、おそらくIntCPを呼ぶ前にINTによってintをlongにキャストしなかったためです。

document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/advanced_feature/c_interface/cpredw/whatdo/print_en.html
published 2008/11/17 update 1994/7/28 (c) 1996-2006 IF Computer Japan
IF Computer 5-28-2 Sendagi, Bunkyo-ku Tel +81-3-5814-3352 start (AT) ifcomputer.com
Customer Support Tokyo 113-0022 Japan   http://www.ifcomputer.com
Back> managed with ubiCMS