C++ 使用boost和mingw编译错误

C++ 使用boost和mingw编译错误,c++,boost,boost-asio,C++,Boost,Boost Asio,我正试图用boost/asio编译以下程序 #include <boost/asio.hpp> int main(){ boost::asio::io_service ioservice; return 0; } 我使用了mingw,如下所示: g++ -IC:\boost\boost_1_59_0 -o myprogram.exe -LC:\boost\boost_1_59_0\stage\lib -lboost_system-mgw48-1_59 myprogram.

我正试图用boost/asio编译以下程序

#include <boost/asio.hpp>

int main(){
  boost::asio::io_service ioservice;
  return 0;
}
我使用了mingw,如下所示:

g++ -IC:\boost\boost_1_59_0 -o myprogram.exe -LC:\boost\boost_1_59_0\stage\lib -lboost_system-mgw48-1_59 myprogram.cpp
我使用了所有不同版本的libboost_系统标志,例如 lboost_系统-mgw48-1_59.a lboost_系统-mgw48-mt-1_59.a 等 所有这些都在一起,但都不起作用


什么可能导致此问题?

该命令有两个问题

首先,作为πάνταῥεῖ 注释中提到,-lboost_system-mgw48-1_59标志必须位于对象文件之后

其次,因为我使用的是windows,所以我还需要添加-lwsock32

g++ -IC:\boost\boost_1_59_0 myprogram.cpp -o myprogram.exe - LC:\boost\boost_1_59_0\stage\lib -lboost_system-mgw48-1_59 –lwsock32

联系订购事宜。将
-lboost\u system-mgw48-1\u 59
作为编译器命令行中的最后一项。我尝试对命令重新排序,但仍然出现未定义的引用错误。g++-IC:\boost\boost\u 1\u 59\u 0 myprogram.cpp-o myprogram.exe-LC:\boost\boost\u 1\u 59\u 0\stage\lib-lboost\u system-mgw48-1\u 59I设法找出了问题所在。我不得不在末尾加上-lwsock32,你应该写一个合适的答案。
g++ -IC:\boost\boost_1_59_0 myprogram.cpp -o myprogram.exe - LC:\boost\boost_1_59_0\stage\lib -lboost_system-mgw48-1_59 –lwsock32