包括增强库,防止打印到控制台

时间:2020-09-13 06:29:37

标签: c++ eclipse boost boost-asio eclipse-cdt

我安装了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控制台上打印任何内容。

如果我注释掉,它将显示“ 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;
}

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。我将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,但是现在我以这种方式解决了问题。

答案 1 :(得分:0)

当您打印到控制台并立即返回时,控制台可能会消失而您没有机会阅读任何内容。之后,尝试从cin中读取确认。 另外,您应该始终说if (cout),否则您不知道流是否失败。