libhttpserver
libhttpserver copied to clipboard
[BUG] "winsock2.h" not found error on mingw64
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
- pacman -S mingw-w64-x86_64-libmicrohttpd
- git clone https://github.com/etr/libhttpserver.git
- cd libhttpserver
- mkdir build
- cd build
- ../configure
- 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.
Have you tried looking at how we compile it here: https://github.com/etr/libhttpserver/blob/master/appveyor.yml ?
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
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?