私はCaffeライブラリを使用して独自のC++分類プログラムを作成しています。 Caffeのモデル初期化ステップ中にすべてのログメッセージを非表示にしたい。 Disable glog's "LOG(INFO)" loggingによると自分のC++プログラムからのCaffeのロギングメッセージを削除
、 私は、コマンドラインから環境変数
GLOG_minloglevel = 2
を設定することでログのほとんどを無効にすることができます。
しかし、私が本当に望むのは、実行可能ファイル自体からすべてのログを削除して、GLOG_minloglevel値をリセットしてログを有効にすることができないようにすることです。
コンパイル時にglogのログメッセージを取り除く方法を見つけることができました(http://rpg.ifi.uzh.ch/docs/glog.html)。私のアプリケーションは、私はカフェのCMakeLists.txtに次のオプションadd_definitions(-DGOOGLE_STRIP_LOG=2)
を追加することでカフェのライブラリを再構築するために必要な、C++ライブラリカフェ年代を使用しているので
> #define GOOGLE_STRIP_LOG 1 // this must go before the #include!
> #include <glog/logging.h>
: それは私がこのようなログを削除することができますと言います。 コンパイルは成功しましたが、新しいcaffeライブラリを使用してアプリケーションを実行すると、モデルの初期化中にセグメンテーション・フォルト・エラーが発生して停止します。 私はこのようにgdbを実行することによって、もう少し詳細なエラーメッセージを得ることができます:
プログラムは、信号SIGSEGV、セグメンテーションフォールトを受けました。 ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:153 153 ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.Sに()__memcpy_sse2_unaligned:そのようなファイルまたはディレクトリ
CaffeのCMakeLists.txtにadd_definitions(-DGOOGLE_STRIP_LOG=2)
を付けずに元のcaffeライブラリにロールバックすると、アプリケーションがうまく動作します。
誰でも私にこの問題を解決するヒントを教えてもらえますか?
ありがとうございます。
なぜロギングを削除したいのかが気になる - ある時点では役に立たないだろうか? –