Как подавить приветственное сообщение при встраивании SWI-Prolog в C / C ++?

Я пишу программу на C ++ со встроенным SWI-Prolog. Каждый раз, когда он выполняется, SWI-Prolog выводит приветственное сообщение на терминал. Я пытался подавить это как

#include<SWI-cpp.h>

PlEngine *ple;
void startSWIProlog(char *argv0)
{
char *av[10];
int ac = 0;
av[ac++] = argv0;
av[ac++] = "--quiet";
av[ac++] = "-g";
av[ac++] = "true";
av[ac] = NULL;

if (!ple) ple = new PlEngine(ac, av);
}

но это не работает Кажется, PlEngine игнорирует переданные параметры. Так есть идеи? Благодарю.

2

Решение

Кажется, он игнорирует argv. Я перепробовал все, что мог, без решения (-g правда, -quiet, -q, NULL тут и там, ничего не работает). Решение лежит в другом месте.

Теперь вы должны просто инициализировать как:

if (!PL_initialise(argc, argv))
PL_halt(EXIT_FAILURE); /* if you wish to exit in case of fail */

Но при компиляции (*) выдайте команду:

swipl-ld prog.c prog.pl -o prog.x -pl-options,-q

И вы должны заставить его замолчать.

(*) Примечание: на самом деле это тест на язык Си. Я не пробовал C ++. Но я думаю, что здесь стоит ответить.

2

Другие решения


По вопросам рекламы [email protected]