无法在 Visual Studio 2008 中编译 z3 库
Cannot compile z3 library in Visual Studio 2008
我想在当前使用 VS2008(.net 框架 3.5)构建的 winforms 应用程序中使用托管的 z3 4.4 API。我可以在 .net 4.x 应用程序中使用 z3 而不会出现问题,但是由于与 z3 无关的原因,将当前应用程序升级为使用 .net 4.x 当前是不可行的。我能够构建 api 并将 Microsoft.z3.dll 包含在我的应用程序中。但是,当从 VS2008 命令提示符编译 z3 C++ 库时,我在尝试将 const_iterator 隐式转换为迭代器时遇到许多错误。示例:
duality_solver.cpp
..\src\duality\duality_solver.cpp(243) : error C2440: 'initializing' : cannot convert from 'std::_Tree<_Traits>::const_iterator' to 'std::_Tree<_Traits>::iterator'
with
[
_Traits=std::_Tset_traits,std::allocator,false>
]
No constructor could take the source type, or constructor overload resolution was ambiguous
将 std::_Tree<_Traits>::iterator 更改为 std::_Tree<_Traits>::const_iterator 可消除这些错误。但是,将得到的z3lib.dll复制到VS2008工程的bin\x86目录下,总是会出现运行时的错误:
Unable to load DLL 'libz3.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
如果 libz3.dll 与 api dll (Microsoft.z3.dll) 位于同一目录中,也会发生这种情况。我还确保 z3 和我的项目是为同一平台 (x86) 构建的。
使用用 VS2013 构建的 libz3.dll 在 VS2008 项目中产生与上面相同的 运行-time 错误。 z3 版本 4.4.0 可以在 Visual Studio 2008 项目中使用吗?如果是这样,如何确保可以加载 libz3.dll 以避免出现上述错误?
我们不在 VS 2008 上构建和测试,而且会在某些时候
指向不支持的 C++ 语言功能
在旧平台上(但支持跨操作系统和
较新的编译器)。
在我的一台机器上,我使用 VS2013 的社区(免费)版本来构建 Z3。
我想在当前使用 VS2008(.net 框架 3.5)构建的 winforms 应用程序中使用托管的 z3 4.4 API。我可以在 .net 4.x 应用程序中使用 z3 而不会出现问题,但是由于与 z3 无关的原因,将当前应用程序升级为使用 .net 4.x 当前是不可行的。我能够构建 api 并将 Microsoft.z3.dll 包含在我的应用程序中。但是,当从 VS2008 命令提示符编译 z3 C++ 库时,我在尝试将 const_iterator 隐式转换为迭代器时遇到许多错误。示例:
duality_solver.cpp ..\src\duality\duality_solver.cpp(243) : error C2440: 'initializing' : cannot convert from 'std::_Tree<_Traits>::const_iterator' to 'std::_Tree<_Traits>::iterator' with [ _Traits=std::_Tset_traits,std::allocator,false> ] No constructor could take the source type, or constructor overload resolution was ambiguous
将 std::_Tree<_Traits>::iterator 更改为 std::_Tree<_Traits>::const_iterator 可消除这些错误。但是,将得到的z3lib.dll复制到VS2008工程的bin\x86目录下,总是会出现运行时的错误:
Unable to load DLL 'libz3.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
如果 libz3.dll 与 api dll (Microsoft.z3.dll) 位于同一目录中,也会发生这种情况。我还确保 z3 和我的项目是为同一平台 (x86) 构建的。 使用用 VS2013 构建的 libz3.dll 在 VS2008 项目中产生与上面相同的 运行-time 错误。 z3 版本 4.4.0 可以在 Visual Studio 2008 项目中使用吗?如果是这样,如何确保可以加载 libz3.dll 以避免出现上述错误?
我们不在 VS 2008 上构建和测试,而且会在某些时候 指向不支持的 C++ 语言功能 在旧平台上(但支持跨操作系统和 较新的编译器)。
在我的一台机器上,我使用 VS2013 的社区(免费)版本来构建 Z3。