gpt4 book ai didi

c++ - 缺少 'printout' CLIPS 的函数声明

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:50 26 4
gpt4 key购买 nike

我有一个用 C++/MacOS 编写的可执行文件接受 clips 命令并使用 clips.h 函数运行它。可执行文件在我的 Mac 上运行完美,但一旦我尝试运行相同的 clips 命令,我就会遇到错误。

我搜索过任何可以提供帮助的东西,但我找不到真正有用的东西。

命令很简单,功能应该已经内置在 clips 中。

这是我正在加载的文件。

(defrule QPain
=>
(printout t "Are You In Pain? ")
(bind ?answer (read))
(if (eq ?answer y)
then
(bind ?*symcount* (+ ?*symcount* 1))))

这是我的C++代码,

#ifdef __cplusplus
extern "C" {
#endif
#include "clips.h"
#ifdef __cplusplus
}
#endif

#include <string>
#include <iostream>

using namespace std;

int main() {
Environment* env = NULL;
env = CreateEnvironment();
SetConserveMemory(env, true);
ReleaseMem(env, 0);
Load(env, "/path/to/clp/file/above");
Reset(env);
Run(env, -1);
return 0;
}

对于上面的代码,我遇到了这两个错误:

  • [EXPRNPSR3] 缺少“打印输出”的函数声明。

我错过了什么?即使我正在使用 clips.h 函数,是否需要在 Linux 上安装任何库才能运行此类命令??

最佳答案

我将这篇文章发布给将来可能遇到同样问题或可以提供任何帮助的任何人。

我正在使用带有以下标志的 gcc 编译器编译剪辑:

-O3 -g -pipe -pedantic -std=gnu99 -fno-strict-aliasing -DIO_FUNCTIONS=0 -c

在深入阅读高级编程指南和每个标志功能后,我发现了一个名为 BASIC_IO 的标志,用于打开/关闭输入/输出功能(打印输出、打开、.. 等),所以根据指南,我更改了标志 DIO_FUNCTIONS = 1 并重新编译了剪辑文件,因此问题得到了解决。

注意:标志名称的差异可能与剪辑版本和编译器版本有关。

感谢所有帮助解决此问题的人。

关于c++ - 缺少 'printout' CLIPS 的函数声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57013116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com