您好,我从 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\LINK 测试_capi
尝试只构建 MS.Z3 项目仍然给我错误 1。
我的最终目标是从 F# 程序调用 Z3。有人可以就如何执行此操作提供一些指导吗? 任何帮助将不胜感激。
最佳答案
编辑
这个答案反射(reflect)了 directory structure在 Z3 版本 <= 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 算法的小型应用程序。
关于z3 - 在 Visual Studio 中构建 Z3 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12984821/