0

我在使用 boost/filesystem.hpp 时遇到了 printf 和 cout 的问题

我在 eclipse juno 中使用 mingw 设置创建了一个 c++ 项目

objectfile.hpp 包含声明,#include "boost/filesystem.hpp"
objectfile.cpp 包含 boost::filesystem::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 和相应的代码然后重新编译之前,没有任何输出。

我还没有测试过其他的 boost 库。也许其他人也有类似的问题?

Windows 7 64 位
Eclipse Juno 64 位 -std=c++11 编译器选项
Boost 1.51 多线程动态链接

更新

我使用以下选项重建了 Boost 1.51:
-j8 toolset=gcc cxxflags=-std=gnu++0x variant=release optimization=speed link=static threading=multi --layout=system --prefix=boost install

现在它可以工作了。

谢谢马歇尔克劳。_ 提交答案,我会接受。

4

1 回答 1

1

重新提交作为答案:

您是否可以使用与您的程序不同的编译器选项构建 boost 库?具体来说,我会检查std=c++11.

于 2013-02-03T06:18:38.777 回答