Win32 builds ------------ MinGW ===== For DLLs compatible with MSVC++ cross-compiled from Linux with MinGW, see the build-win32.sh script in the scripts/ directory and its companion README file. Cygwin ====== From: "Mark J. Fine" Subject: [Hamlib-developer] Building under Cygwin for Windows (Mingw32) List-Archive: Date: Sun, 20 Jun 2004 15:25:24 -0400 Found this to be helpful for building hamlib under Cygwin/Mingw32 for linking with Windows apps: 1. To create the dlls, do the following from within Cygwin (assumes Cygwin is fully updated): $ export CC="gcc -mno-cygwin" $ export CXX="g++ -mno-cygwin" $ ./bootstrap $ ./configure --prefix=/usr/local \ --build=i686-pc-cygwin \ --host=i686-pc-mingw32 \ --target=i686-pc-mingw32 Note: on subsequent runs you will only need to run 'bootstrap' if there are modifications to any .ac, .m4, or Makefile.am files. In that case, "make clean", and re-run 'bootstrap' as above. # make If you are only building one version of hamlib, you can proceed to install it: # make install Note: Don't run "make install" if you've already made a native Cygwin or Linux version of hamlib. It will interfere with the pkgconfig used for linking the hamlib library with a native Cygwin or Linux application. In fact if you are building two versions, it's best to have one tree for native Cygwin and another tree for cross-compiling with MingW32. This way you can avoid overwriting or corrupting any needed object files or libraries. As an alternative to "make install", manually go through all of the .libs in the source tree and copy the resulting .exes and .dlls in to a single directory. Or, create a script or batch file to do it for you. Likewise, you will need to copy all of the the .h files from include/hamlib into this same directory. Go to the directory you've just put all that stuff in and run: # strip *.dll # strip *.exe This will make the resulting images smaller. 2. To create a MSVC-compatible interface library, do the following in a Windows command window from the directory where you put all that stuff: > lib /def:libhamlib.def /machine:IX86 /name:libhamlib-1-2-2cvs-2 This will create libhamlib.lib and libhamlib.exp. This example is for hamlib v1.2.2cvs-2. You will have to use the correct version of the library in the "/name:" switch, above. REM: Using the (free) Microsoft Visual C++ Toolkit 2003, replace the "lib" command by "link /lib". libhamlib.lib and the .h includes from include/hamlib can now be used within any MSVC build (i.e., dream), but all the dlls must be put in the same directory or in PATH as the resulting .exe otherwise it won't find it. -- Mark J. Fine Remington, Virginia, USA MSVC 2022 ========= MSVC C/C++ projects must use the NuGet pthread package in order to compile as of Sep 2022 An example C++ project is in bindings/MSVC If you want to do a dotnet build you will need this done from an administrative PowerShell npm install -g --production windows-build-tools