Существует два варианта использования MiniZinc из проекта C ++.Вероятно, самый простой способ - использовать fork
и execv
.Комбинируя эти две команды, вы можете просто запустить исполняемый файл minizinc
с любыми флагами и файлами, которые вы считаете необходимыми. Однако для этого необходимо, чтобы пользователь установил и установил MiniZinc по системному пути ($PATH
).
Второй способ - использовать libminizinc в качестве библиотеки C ++.Источник для компилятора / драйвера MiniZinc можно найти здесь: https://github.com/MiniZinc/libminizinc и может использоваться в качестве библиотеки.Однако текущая поддержка такого поведения очень ограничена.В течение нескольких месяцев команда MiniZinc намерена выпустить C API для libminizinc, что, вероятно, значительно упростит процесс.В то же время, если вы решите использовать этот подход, я бы посоветовал вам начать свой путь с файла main.cpp
, так как это, вероятно, покажет вам, как использовать библиотеку.
Обратите внимание, что даже если вы беретеВторой подход: решатели FlatZinc, такие как OR Tools, Chuffed и Oscar CBLS, должны быть доступны по системному пути, чтобы быть доступными в вашем приложении.