[解決済み] Make / gcc cryptic error 2: How to have more information?
質問内容
このC++プロジェクトはMakefileを使ってコンパイルしているのですが、時々、(
推測
というメッセージが表示され、makeが停止してしまいます。
存在しないヘッダーファイルをインクルードしたときに起こるのは3回目なので、インクルードファイルの欠落を疑っています。
このような感じです。
---- Build tmp/foo.o ----
---- Build tmp/bar.o ----
---- Build tmp/toto.o ----
---- Build tmp/tata.o ----
make: *** [build_Project] Error 2
なぜなら、冗長コマンド(g++の各呼び出しが表示される)を使用しても、何も表示されないからです。
私は、こいつが"のような誤ったメッセージを吐くと予想していた。
can't find header X
あるいは、"
Y への未定義の参照
"が、何もないのです。
私のgccのコンパイルオプションは
-O0 -Wall -Werror -Wno-write-strings -fno-rtti -fno-exceptions
もし、これが役に立つなら。
あ、あとMakefileで依存関係を含めるというトリックも使ってますね。
ifneq ($(strip $(DEPENDS)),)
ifneq ($(MAKECMDGOALS),clean)
-include $(DEPENDS)
endif
endif
これは文書化されたものですが、私の問題はこの依存関係が含まれていることと関係があるのではないかと思います。
もし、すでにこの問題につまづいていたら、遠慮なくコメントしてください...。
よろしくお願いします。
を編集します。
さて、少し遊んでみたところ、抑制することで
-
の前にある
-include $(DEPENDS)
は、さらに情報を与えてくれます(makefileの
が行います。
で停止します)。
make[1]: *** No rule to make target « foo.h », necessary for « tmp/bar.d ». Stop.
さて、欠点は、起動時に
make
が表示されます。
missing bar.d file
メッセージは、インクルードすべき各依存性ファイルに対して表示されます。
-
を使用します。)
何か解決策はありますか?
どのように解決するのですか?
OK 私の編集で問題が解決しました:ダッシュの配置
-
の前にある
include
は、依存関係の生成から来るエラーメッセージを隠します。
後日のためのメモ:Makeを出し抜こうとしないこと。
関連
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
-
[解決済み】gcc makefileのエラー。"No rule to make target ..." (ターゲットにするルールがありません)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない