3

我想在我的程序中外部使用 ChatScript。在文件中它说:

嵌入步骤 #1 首先,您需要修改 `common.h 并编译系统。您需要将所有 CS .cpp 文件添加到构建列表中。

找到// #define NOMAIN 1并取消注释它。这将允许您将程序编译为主程序,而 ChatScript 仅作为伴随它的例程集合。

但我是 Linux 的新手,不明白如何将 .cpp 文件添加到我的构建列表中?我的构建清单是什么?有人可以解释我应该做什么吗?

我确实复制了项目中 main.cpp 旁边的 ChatScript/SRC 目录中存在的所有 .cpp 和 .h 以及其他文件夹。

然后我尝试运行这段代码:

#include<iostream>
using namespace std;

char* output2;
    unsigned int InitSystem(int argc,char* argv[],char* unchangedPath,char* readonlyPath,char* writablePath);
    void InitStandalone();
    void PerformChat(char* user,char* usee,char* incoming,char* ip,char* output);

    int main()
    {

    PerformChat(NULL,NULL,"hi",NULL,output2);

    cout<<output2;

        return 0;
    }

但我收到此错误消息:

undefined reference to `PerformChat(char*, char*, char*, char*, char*)

然后我确实将所有头文件包含到我的程序中并删除了这行代码: void PerformChat(char* user,char* usee,char* incoming,char* ip,char* output);

#include<iostream>

#include "common.h"
#include "common1.h"
#include "constructCode.h"
#include "cs_ev.h"
#include "csocket.h"
#include "dictionaryMore.h"
#include "dictionarySystem.h"
#include "english.h"
#include "evserver.h"
#include "factSystem.h"
#include "functionExecute.h"
#include "infer.h"
#include "jsmn.h"
#include "json.h"
#include "mainSystem.h"
#include "markSystem.h"
#include "mongodb.h"
#include "mprintf.h"
#include "multi.h"
#include "my_sql.h"
#include "os.h"
#include "outputSystem.h"
#include "patternSystem.h"
#include "postgres.h"
#include "privatesrc.h"
#include "scriptCompile.h"
#include "spellcheck.h"
#include "systemVariables.h"
#include "tagger.h"
#include "testing.h"
#include "textUtilities.h"
#include "tokenSystem.h"
#include "topicSystem.h"
#include "userCache.h"
#include "userSystem.h"
#include "variableSystem.h"

using namespace std;

char* output2;
    unsigned int InitSystem(int argc,char* argv[],char* unchangedPath,char* readonlyPath,char* writablePath);
    void InitStandalone();
    void PerformChat(char* user,char* usee,char* incoming,char* ip,char* output);

    int main()
    {

    PerformChat(NULL,NULL,"hi",NULL,output2);

    cout<<output2;

        return 0;
    }

但是新的错误说:

error: conflicting declaration of C function ‘int main()'
4

1 回答 1

1

您必须在项目中包含所有聊天脚本 SRC 文件才能编译函数 PerformChat。但很快 ChatScript 也将与库编译一起发布。

于 2017-10-15T16:01:57.217 回答