g ++ - 4.7と-std = C++ 0xを使用してC++ 11でアプリケーションを開発しています。
私のアプリはg ++ - 4.7でコンパイルされたいくつかの共有ライブラリとリンクされていますが、-std = C++ 0xディレクティブはありません。C++ 11とC++ 03のライブラリ互換性
残念ながら、何も動作しません。これは、外部ライブラリのクラスとメソッドを使用するときに私がいくつかの奇妙な動作をすることを意味します。 (もちろん、私のアプリをコンパイルするには、-std = C++ 0xはうまくいきます)。
これは予期される動作か、コンパイラのバグですか?
回避方法(
extern
Cキーワードのような)?
ライブラリを '-std = C++ 0x'で再コンパイルできないのはなぜですか? – leftaroundabout
ライブラリヘッダーの1つのビューと異なるビューを持つ別のTUを使用して1つのTUをコンパイルすると、すべての翻訳単位に同じコードが表示されるという要件にはっきりと違反しています。 –
異なるフラグを使用してコンパイルすることは、狂気の最短道の1つです。それは多かれ少なかれ警告や最適化レベルは大丈夫ですが、ソースコードの解釈や生成されるバイナリのレイアウトに影響を与えるときには...ハム。 –