编译CLIPS集成源代码时,CLIPS解决方案中的CLIPSStatic失败

时间:2015-05-26 04:32:12

标签: visual-studio-2012 integration clips

我检查了weibsite的更新代码:http://sourceforge.net/projects/clipsrules/

当我构建CLPSStactic项目时,输出窗口中显示错误:

..\clipscpplib.cpp(281):error C2664: 

"EnvAddRouterWithContext": cannot convert parameter 4 from "int (__cdecl *)(void *,const char *) to "int (__cdecl *)()""

注意:

  1. 我使用的是VS2012版本
  2. 使用VS2012打开CLIPS.sln(在名为“Installer”的文件夹中) 更新到vs2012时遇到错误(CLIPS.vdproj,CLIPSSource.vdproj)。但CLIPS的源代码已在文件夹../ Source / CLIPS。
  3. 中生成
  4. 可以编译CLIPSDynamic和CLIPSWrapper而不会出错。
  5. 我想知道为什么会出现这个错误,是否与VS版本或其他任何内容有关?怎么解决这个问题?

    谢谢!

    @Gary Riley 如果你有时间,请看看这个。谢谢!

2 个答案:

答案 0 :(得分:1)

您正在使用错误的项目/解决方案。下载最新提交(r281)。您要使用的microsoft_windows目录中的解决方案文件夹是CLIPS_MVC_2010,CLIPS_MVC_2013,Examples_MVC_2010和Examples_MVC_2013。由于您使用的是Visual Studio 2012,因此您可能希望使用2010目录。 “高级编程指南”中的说明专门参考了这些目录。不要在Installer目录中使用任何内容。您需要将CLIPS源代码文件从核心目录复制到microsoft_windows / Source / CLIPS目录,因为它们不会在存储库中复制。

答案 1 :(得分:0)

我自己解决了这个问题。有详细信息:

  1. 从“core”文件夹(http://sourceforge.net/p/clipsrules/code/HEAD/tree/)复制“router.h”和“router.c”文件 到文件夹“microsoft_windows / Source / CLIPS”,并删除文件夹“../ CLIPS”中的两个原始文件。

  2. 请勿将“core”文件夹中的所有文件复制到“CLIPS”。它也不会使CLIPSStatic项目成功。似乎“core”文件夹的“aggenda.h”或“aggenda.c”中存在问题。

  3. 我认为问题是项目CLIPS在名为“Installer”的文件夹中生成的“router.h”和“router.c”不是最新版本。

  4. 如果您检查了同一网站的代码,并使用了相同的版本VS.你也可能遇到这个问题。这种方式可以帮助您解决问题。