z3 - 在 Visual Studio 中构建 Z3 时遇到问题

标签 z3

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

相关文章:

z3 - 为什么Z3中的运算符 '/'和 'div'给出不同的结果?

Z3Py:不相等元组的约束

c - Z3 (Haskell) 中的段错误

Z3Py:随机结果(阶段选择)不是随机的?

z3 - 简化 Z3 表达式

Z3 位向量操作

Z3 4.0 Z3_parse_smtlib2_string

z3 - 用 Z3 检查溢出

z3 - EPR片段中prenex量化的顺序是否重要?

z3 - 与 Z3 的等效性检查