备选方案SICStus Prolog FFI SP_define_c_谓词()
我粘贴了SICStus序言4.3.3 原样和。。。失败: $/usr/local/sicstus4.3.3/bin/splfr square.pl square.c c:在函数“square_it”中: square.c:7:3:错误:未知类型名称“SP_WORD” SP_单词arg1; ^ square.c:13:3:警告:从不兼容的指针类型传递'sp_GlobalSICStus_square->dispatch_API_SICSTUS_H->pSP_get_integer'的参数2[默认启用] 如果(!SP_get_integer(tmp,&arg1)) ^ square.c:13:3:注意:应为'SP_integer*',但参数的类型为'int*' 来自用户代码的未捕获异常: ! 无法编译square.c 到目前为止,我为备选方案SICStus Prolog FFI SP_define_c_谓词(),prolog,ffi,sicstus-prolog,Prolog,Ffi,Sicstus Prolog,我粘贴了SICStus序言4.3.3 原样和。。。失败: $/usr/local/sicstus4.3.3/bin/splfr square.pl square.c c:在函数“square_it”中: square.c:7:3:错误:未知类型名称“SP_WORD” SP_单词arg1; ^ square.c:13:3:警告:从不兼容的指针类型传递'sp_GlobalSICStus_square->dispatch_API_SICSTUS_H->pSP_get_integer'的参数2[默认启用
SP\u WORD
搜索了SICStus C include文件,但没有结果
你有什么建议可以让它工作吗?提前谢谢你
(仅供参考:我使用的是x86-64 Linux Mint 17,gcc版本为4.8.4。)示例应该使用
SP_integer
而不是内部类型SP_WORD
find sicstus4.3.3-name'*.c';xargs grep-l SP_WORD
@false。我马上就不在我的电脑旁了。那找到了什么
找到了什么?(我只在include files…sicstus-4.3.3/library/clpfd/arith.c
以及该目录中的更多文件中进行了搜索。)。
$ /usr/local/sicstus4.3.3/bin/splfr square.pl square.c
square.c: In function ‘square_it’:
square.c:7:3: error: unknown type name ‘SP_WORD’
SP_WORD arg1;
^
square.c:13:3: warning: passing argument 2 of ‘sp_GlobalSICStus_square->dispatch_API_SICSTUS_H->pSP_get_integer’ from incompatible pointer type [enabled by default]
if (!SP_get_integer(tmp,&arg1))
^
square.c:13:3: note: expected ‘SP_integer *’ but argument is of type ‘int *’
Uncaught exception from user code:
! Could not compile square.c