2
ここからいくつかの複数の定義エラーの質問があることを理解していますが、これで困惑しています。最適化レベルからのC++多重定義リンカーエラー
開発中のモジュールとデバッグ時にビルドしたモジュールがあります(-DDEBUG -g -O0
)。今、私は私が構築リリース-DNDEBUG -Os
を作りたいと私は
- のstd :: basic_ios> :: basic_ios()
- のstd :: __ throw_bad_allocを含むいくつかのSTLの定義の複数の定義のためのリンカエラーを取得すること()
- のstd ::文字列::アサイン(char型のconst *)V
- エトセトラ 私は私のプロジェクト、すべてのヘッダファイルは#ifndefのガードを持っているとヘッダファイル内の唯一のコードをインライン宣言されているを確認している
。
私は-DNDEBUG -O0
でコンパイルできますが、どのレベルの最適化でもコンパイルできないことがわかりました。構築プロセスには約2ダースのオブジェクトを構築し、それらをリンクします。最適化がリンカーを殺すのはなぜですか?どうすればこの問題を解決できますか?
TDMで構築するMinGW 4.6.1。
私が質問で言ったように、私は問題ファイルが何であるかを見つけることができません。どのファイルが問題の子供であるか把握するのに役立ちますか? –
@AndrewReddあなたはどんなMFCヘッダーも含んでいますか?もちろん、ソースを見つけるまでファイルを削除しようとすることができます。 –
私は、混在したDLLの問題はこれと関係がないとは思わない。私は完全にクリーンで、デバッグとリリースを混在させずにビルドしています。 –