libhttpserver icon indicating copy to clipboard operation
libhttpserver copied to clipboard

[BUG] "winsock2.h" not found error on mingw64

Open computergeek1507 opened this issue 2 years ago • 3 comments

Prerequisites

  • [X] Put an X between the brackets on this line if you have checked that your issue isn't already filed: https://github.com/search?l=&q=repo%3Aetr%2Flibhttpserver&type=Issues

Description

I am attempting to compile libhttpserver on Windows 10 using msys2 with mingw64.

Steps to Reproduce

  1. pacman -S mingw-w64-x86_64-libmicrohttpd
  2. git clone https://github.com/etr/libhttpserver.git
  3. cd libhttpserver
  4. mkdir build
  5. cd build
  6. ../configure
  7. or ../configure --disable-fastopen --prefix /mingw64 CXXFLAGS=-I/mingw64/include LDFLAGS=-L/mingw64/lib

Expected behavior: [What you expect to happen]

Actual behavior: [What actually happens] If I run "../configure" by itself I get an configuration error for "winsock2.h" not found

also tried

"../configure --disable-fastopen --prefix /mingw64 CXXFLAGS=-I/mingw64/include LDFLAGS=-L/mingw64/lib" "../configure --disable-fastopen --prefix=/D/msys64/mingw64 CXXFLAGS=-I/D/msys64/mingw64/include LDFLAGS=-L/D/msys64/mingw64/lib"

I get an configuration error for "error.h" not found

Reproduces how often: 100%

Versions

  • OS version Windows 10 Pro 21H2
  • libhttpserver version: github master
  • libmicrohttpd version : mingw-w64-x86_64-libmicrohttpd 0.9.75-2

If you have problems during build:

  • Compiler version
  • autotools version

Additional Information

Any additional information, configuration (especially build configuration flags if you compiled the libraries) or data that might be necessary to reproduce the issue.

If you have problems during build, please attach your config.log and the full scope of your error from make.

If you have problems at execution, please:

  • attach the stacktrace in case of crash (a coredump would be even better).
  • provide a main that reproduces the error. image image

computergeek1507 avatar Sep 02 '22 15:09 computergeek1507

Have you tried looking at how we compile it here: https://github.com/etr/libhttpserver/blob/master/appveyor.yml ?

etr avatar Sep 02 '22 16:09 etr

I copied the process mostly from the appveryor and it doesn't work on my machine. I have msys2 installed on my Windows D drive, so I don't know if that effects the process.

#!/bin/bash

git clone https://github.com/etr/libhttpserver.git

pacman --noconfirm -S --needed mingw-w64-x86_64-{libtool,make,pkg-config,libsystre,doxygen,gnutls,graphviz,curl}
pacman --noconfirm -S --needed autotools
curl https://s3.amazonaws.com/libhttpserver/libmicrohttpd_releases/libmicrohttpd-0.9.64.tar.gz -o libmicrohttpd-0.9.64.tar.gz
tar -xzf libmicrohttpd-0.9.64.tar.gz
cd libmicrohttpd-0.9.64 && ./configure --disable-examples --enable-poll=no --prefix /D/msys64/mingw64 && make && make install
cd cd .. && cd libhttpserver && ./bootstrap
mkdir build && cd build && MANIFEST_TOOL=no; ../configure --disable-fastopen --prefix /D/msys64/mingw64 CXXFLAGS=-I/D/msys64/mingw64/include LDFLAGS=-L/D/msys64/mingw64/lib; make

computergeek1507 avatar Sep 09 '22 21:09 computergeek1507

Would you mind pasting the entire output of both your configure execution of libmicrohttpd and libhttpserver?

They should be both checking for "winsock2.h" so I am puzzled of why one worked and the other didn't (at configure time).

Maybe looking at what libmicrohttpd is doing can help here.

As aside, can you also search and confirm the location of the "winsock2.h" file on your system?

etr avatar Sep 09 '22 23:09 etr