首页 > 解决方案 > 包括boost库,防止打印到控制台

问题描述

我安装了 boost 库,我想测试它。我构建并运行以下项目。但我有一个问题。当我建立项目时:

Info: Internal Builder is used for build 

g++ -std=c++0x "-IC:\\boost\\include\\boost-1_68" -O0 -g3 -Wall -c -fmessage-length=0 
     -o "src\\MyTestProject.o" "..\\src\\MyTestProject.cpp" 

g++ "-LC:\\boost\\lib\\" -o MyTestProject.exe "src\\MyTestProject.o" -lws2_32 
     -llibboost_iostreams-mgw63-mt-x32-1_68 
     -llibboost_filesystem-mgw63-mt-x32-1_68 
     -llibboost_system-mgw63-mt-x32-1_68 

Build Finished. 0 errors, 0 warnings. 

在我单击运行项目后:“信息:没有为 MyTestProject 构建任何内容”并且它不会向 MyTestProject.exe 控制台打印任何内容。

如果我注释掉 <boost/asio.hpp>,它会打印“Hello world!”。问题是什么?我在 Windows 上使用 mingw-64、eclipse CDT、boost_1_68_0。谢谢!

#include <iostream>
#include <boost/asio.hpp>
//#include <boost/date_time/posix_time/posix_time.hpp>
using namespace std;
int main()
{
  //boost::asio::io_context io;
  //boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
  //t.wait();

  cout << "Hello world!" << std::endl; 
  return 0;
}

标签: c++eclipseboostboost-asioeclipse-cdt

解决方案


我找到了解决方案。我将 libboost_system-mgw63-mt-d-x32-1_68.dll 文件添加到我的项目目录(..\Users\workspace\MyTestProject)。实际上,我已经将 -L c:\boost\lib 和 -l libboost_system-mgw63-mt-d-x32-1_68 添加到链接器中。还将 boost 添加到 PATH 中。我不知道为什么它找不到 dll,但现在我以这种方式解决了问题。


推荐阅读