1

SCIP callable がすべてのメッセージを stderr に出力するようにします (flatzinc ソルバーとして使用します)。私はもう試した

SCIP_DECL_MESSAGEWARNING(printMsg) {
  cerr << msg << flush;
}
...
      SCIP_MESSAGEHDLR* pHndl=0;
      SCIP_CALL ( SCIPmessagehdlrCreate ( &pHndl, FALSE, NULL, FALSE, printMsg, printMsg, printMsg, NULL, NULL) );

効果なし...

4

1 に答える 1

1

また、SCIP にメッセージ ハンドラーを認識させてみてください。

  SCIP_CALL( SCIPsetMessagehdlr(scip, pHndl) );

これにより、SCIP もメッセージ ハンドラーをキャプチャするようになるため、不要になった場合は解放できます。

  SCIP_CALL( SCIPmessagehdlrRelease(&pHndl) );

これはエラー メッセージのハンドラーを上書きしません。なぜなら、SCIP がまだ存在しない場合にこれらを出力する必要があるからです。SCIPmessageSetErrorPrinting() を介して、このハンドラーを設定できます。しかし、彼らはすでにstderrに行きます。

于 2016-01-28T04:19:36.710 に答える