3

您好,我从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 test_capi

尝试仅构建 MS.Z3 项目仍然给我错误 1。

我的最终目标是从 F# 程序中调用 Z3。有人可以为如何做到这一点提供一些指导吗?任何帮助,将不胜感激。

4

1 回答 1

3

编辑

这个答案反映了Z3 版本 <= 4.1.1 中使用的目录结构。在 4.3 版中,代码库已重新组织/简化。

结束编辑

您使用的是哪个版本的 Visual Studio?我问是因为我想重现你描述的行为。此处描述了构建 Z3 的最简单方法。您应该使用 Visual Studio 命令提示符,然后执行msbuild. 看来你试过了,但有错误。以下是每个项目文件夹的简短说明:

  • lib: Z3 源代码在这里。这是重要的文件夹。对于 Visual Studio 用户,它生成了一个静态库。
  • dll:用于将静态库包装为 Windows DLL 的项目。这与其他平台的用户无关。
  • shell: 使用静态库 fromlib来构建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 算法的小型应用程序。
于 2012-10-20T03:05:46.200 回答