您好我从http://z3.codeplex.com/下载了Z3,然后在Visual Studio 2012中打开了Z3解决方案。(虽然我不是VS的新手,但我已经用了10多年了)。这个解决方案中有9个项目,但我很难说明我应该使用哪个项目。我可以猜到其中一些,但其他人不是很清楚。例如。 Microsoft.Z3和Microsoft.Z3V3有什么区别?任何人都可以简单地解释一下不同的项目是什么以及要构建哪些项目?
无论如何只是为了踢,我尝试构建顶级解决方案,但得到以下错误
错误1错误RC1015:无法打开包含文件'afxres.h'。 C:\ Projects \ z3-src-4.1.2 \ z3 \ dll \ dll.rc 10 1 dll
错误2(与错误1相同,但在shell.rc中除外)
错误3错误LNK1104:无法打开文件'C:\ Projects \ z3-src-4.1.2 \ z3 \ Debug \ z3_dbg.lib'C:\ Projects \ z3-src-4.1.2 \ z3 \ test_capi \链接test_capi
尝试仅构建MS.Z3项目仍然给出了错误1。
我最终的目标是从一个F#程序中调用Z3。有人可以为如何做到这一点提供一些指导吗? 任何帮助将不胜感激。
答案 0 :(得分:3)
修改强>
此答案反映了Z3版本中使用的directory structure< = 4.1.1。在4.3版中,代码库已经过重新组织/简化。
结束编辑
您使用的是哪个版本的Visual Studio?我问,因为我想重现你描述的行为。
构建Z3的最简单方法是here。
您应该使用Visual Studio命令提示符,并执行msbuild
。看来你试过了,并且得到了错误。以下是每个项目文件夹的简短描述:
lib
:Z3源代码在这里。这是重要的文件夹。对于visual studio用户,它生成了一个静态库。dll
:用于将静态库包装为Windows DLL的项目。这与其他平台的用户无关。shell
:使用lib
中的静态库构建z3.exe
。test
:一系列单元测试。它产生test.exe
。Microsoft.Z3
:。Net API。它是Z3的官方.Net API(C#,Visual Basic,F#等)。这是您应该使用F#的API。Microsoft.Z3V3
:这是旧的.NET API。它是Z3 3.x中提供的API。我们维护它是因为一些用户仍在使用它。test_capi
:测试Z3 C API的应用程序。maxsat
:在Z3 API之上实现两个maxsat算法的小型应用程序。