作为从C ++程序进行的函数调用,有没有办法调用minizinc中定义的约束模型?我的环境是VS 2017(如果重要)。
答案 0 :(得分:2)
从C ++项目中使用MiniZinc有两种选择。可能最简单的方法是使用fork
和execv
。使用这两个命令的组合,您可以只运行minizinc
可执行文件以及您认为必要的任何标志和文件。但这确实需要用户安装MiniZinc并在系统路径($PATH
上可用)
第二种方法是将 libminizinc 用作C ++库。可在以下位置找到MiniZinc编译器/驱动程序的源代码:https://github.com/MiniZinc/libminizinc并可用作库。但是,目前对于这种行为的支持非常有限。在几个月内,MiniZinc团队打算发布libminizinc的C API,这可能会使该过程更加容易。同时,如果您选择使用这种方法,建议您从main.cpp
文件开始您的旅程,因为这很可能会向您展示如何使用该库。
请注意,即使您采用第二种方法,也必须在系统路径上使用FlatZinc求解器(例如OR Tools,Chuffed和Oscar CBLS)才能在您的应用程序中使用。