type errors in Mingw-x64

365 Views Asked by At

I'm trying to build my project (wpilib) on windows, coming from linux where it works fine. I installed mingw, but that didn't seem to have all the threading stuff I'm using, so I deleted it and installed mingw-x64. That got me further, but now I'm stuck here.

In file included from C:/Program Files/mingw-w64/x86_64-5.1.0-posix-seh-rt_v4-rev0/mingw64/x86_64-w64-mingw32/include/winsock2.h:55:0,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/detail/socket_types.hpp:38,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/detail/win_tss_ptr.hpp:23,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/detail/tss_ptr.hpp:25,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/detail/call_stack.hpp:20,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/impl/handler_alloc_hook.ipp:19,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/handler_alloc_hook.hpp:80,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/detail/handler_alloc_helpers.hpp:21,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/detail/bind_handler.hpp:19,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/detail/wrapped_handler.hpp:18,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/io_service.hpp:24,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/basic_io_object.hpp:19,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/basic_socket.hpp:20,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio/basic_datagram_socket.hpp:20,
                 from C:\Users\peter\gz-ws\boost_1_56_0/boost/asio.hpp:21,
                 from C:\Users\peter\gz-ws\gazebo\build\install\Debug\include\gazebo-6.0/gazebo/transport/Connection.hh:23,
                 from C:\Users\peter\gz-ws\gazebo\build\install\Debug\include\gazebo-6.0/gazebo/transport/transport.hh:3,
                 from C:\Users\peter\wpilib\cpp\current\sim\include/DriverStation.h:9,
                 from C:\Users\peter\wpilib\cpp\current\sim\include/RobotBase.h:9,
                 from C:\Users\peter\wpilib\cpp\current\sim\include/WPILib.h:35,
                 from ..\src\OI.h:11,
                 from ..\src\OI.cpp:8: C:/Program Files/mingw-w64/x86_64-5.1.0-posix-seh-rt_v4-rev0/mingw64/x86_64-w64-mingw32/include/psdk_inc/_socket_types.h:11:9: error: 'UINT_PTR' does not name a type  typedef UINT_PTR SOCKET;
1

There are 1 best solutions below

9
On BEST ANSWER

For some reason, adding the following to all my .cpp files seems to have fixed that particular problem. I've noticed that everyone seems to be putting this at the top, but I don't see the connection between this and UINT_PTR, which is defined in basetsd.h

#ifdef _WIN32
  // Ensure that Winsock2.h is included before Windows.h
  #include <Winsock2.h>
#endif

If anyone figure out why this fixes it, I'd love to know