我在使用 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
现在它可以工作了。
谢谢马歇尔克劳。_ 提交答案,我会接受。