0

boost / filesystem.hppを使用すると、printfとcoutで問題が発生しました。

mingw設定を使用してEclipsejunoでc++プロジェクトを作成しました

objectfile.hppには宣言が含まれ、#include "boost / filesystem.hpp" objectfile.cppに
はboost::ファイルシステム::exists(...)の定義と使用法が含まれます
mainfile.cppには次のコードが含まれます。

#include <stdio.h>
using namespace std;

int main() {
  printf("asdf\n");
  cout <<"asdf"<<endl;
  return 0;
}

mainfile.cppにはobjectfile.hppのヘッダーは含まれていませんが、リンク段階でリンクされます。また、boost_systemとboost_filesystemがリンクされています。

問題:出力が空です。boost / filesystem.hppと対応するコードを削除してから再コンパイルするまで、出力はまったくありません。

私はまだ他のブーストライブラリでテストしていません。たぶん他の誰かが同様の問題を抱えていますか?

Windows764
ビットEclipseJuno64ビット-std=c++11コンパイラオプション
Boost1.51マルチスレッド動的リンク

アップデート

Boost1.51を次のオプションで再構築しました。
-j8toolset=gcc cxxflags = -std = gnu ++ 0x Variant = releaseoptimization = speed link = static threading = multi --layout = system --prefix = boost install

そして今それは動作します。

マーシャルクロウありがとうございます。回答を送信してください。承諾します。

4

1 に答える 1

1

回答として再送信:

プログラムとは異なるコンパイラオプションを使用してBoostライブラリを構築した可能性はありますか?具体的にはチェックしstd=c++11ます。

于 2013-02-03T06:18:38.777 に答える