1
0
mirror of https://git.code.sf.net/p/zint/code synced 2026-06-09 23:23:36 +00:00
Files
zint/win32
gitlost 5138d0703c CLI: --gs1XXX args now imply `--gs1
GUI: fix chkGS1Strict enabling on startup regression from previous
  commit; update CLI equivalence with --gs1strict & adjust for
  implied --gs1; add tests
CMake: allow lpng/zlib and gs1encoders to take paths (for Windows)
win32/README: simplify locating lpng/zlib/gs1encoders for cmake
  using above; add note on 64-bit build
manual/man page: adjust for various above changes
2025-09-16 10:10:30 +01:00
..
2025-02-25 15:29:08 +00:00
2025-09-16 10:10:30 +01:00
2022-08-05 23:51:24 +01:00

% win32/README 2025-09-16



Visual Studio 2022

------------------



To build the Zint library DLL and the command line tool "zint.exe" with PNG

support for x86/Win32:



Install git (https://git-scm.com/downloads)

Install cmake (https://cmake.org/download/)



Open a "Developer Command Prompt for VS 2022" (should be available under the

"Visual Studio 2022" tab in the Start menu).



Make sure git and cmake are in your PATH, e.g. (your paths may differ)



  set "PATH=C:\Program Files\Git\cmd;%PATH%"

  set "PATH=C:\Program Files\CMake\bin;%PATH%"



Download zint, zlib, libpng and gs1encoders (GS1 Syntax Engine) by going to the

directory you want to clone them into:



  cd <project-directory>



and cloning each:



  git clone https://git.code.sf.net/p/zint/code zint

  git clone https://git.code.sf.net/p/libpng/code lpng

  git clone https://github.com/madler/zlib.git zlib

  git clone https://github.com/gitlost/gs1-syntax-engine



First build zlib:



  cd zlib

  nmake -f win32\Makefile.msc clean

  nmake -f win32\Makefile.msc

  cd ..



and then lpng:



  cd lpng

  nmake -f scripts\makefile.vcwin32 clean

  nmake -f scripts\makefile.vcwin32

  cd ..



and then gs1encoders:



  cd gs1-syntax-engine\src\c-lib

  nmake -f makefile.vcwin32 clean

  nmake -f makefile.vcwin32

  cd ..\..\..



If you now open "%cd%\zint\win32\zint.sln" with Visual Studio 2022, you

should be able to build the Release configuration for Win32.



"zint.dll" and "zint.exe" will be in "zint\win32\Release".



To build Zint Studio ("qtZint.exe"), you need to have Qt installed, which

involves signing up for a Qt account and installing the Qt Maintenance Tool.

(https://www.qt.io/download-qt-installer)

Using this tool you can install various versions of Qt and various optional

components.



The following requires the "MSVC 2019 32-bit" component to be installed.



As of writing Qt 5.15.2 is the latest release that includes this component and

is used here. Add the location of this component to your PATH, e.g. (your path

may differ):



  set "PATH=C:\Qt\5.15.2\msvc2019\bin;%PATH%"



Next build the Zint backend Qt library "QtZintDLL.lib":



  cd zint\backend_qt

  qmake backend_qt_zintdll.pro

  nmake clean

  nmake release

  cd ..\..



Then Zint Studio "qtZint.exe":



  cd zint\frontend_qt

  qmake frontend_qt_zintdll.pro

  nmake clean

  nmake release

  cd ..\..



This creates "zint\frontend_qt\release\qtZint.exe". It requires the Zint DLL to

run, so add its location to your PATH:



  set "PATH=%cd%\zint\win32\Release;%PATH%"



You should now be able to run Zint Studio:



  zint\frontend_qt\release\qtZint





Visual Studio 2019 and 2017

---------------------------



Solutions for Visual Studio 2019 and 2017 are in sub-directories vs2019 and

vs2017. The steps are the same as for Visual Studio 2022. Adjust for

sub-directory when setting PATH:



  set "PATH=%cd%\zint\win32\vs2019\Release;%PATH%"

  set "PATH=%cd%\zint\win32\vs2017\Release;%PATH%"





Visual Studio 2015

------------------



A solution for Visual Studio 2015 is in sub-directory vs2015. The steps are

almost the same as for Visual Studio 2022, except that "rc.exe" may not be

available. If so, you need to install a Windows Kit and then update your PATH,

e.g. (adjust for version):



  set "PATH=C:\Program Files (x86)\Windows Kits\10\bin\10.0.20348.0\x86;%PATH%"



Recent versions of Qt no longer supply a specific component for Visual Studio

2015 32-bit, but you can use "MSVC 2019 32-bit" instead as it's compatible.

Adjust for sub-directory when setting PATH:



  set "PATH=%cd%\zint\win32\vs2015\Release;%PATH%"



For information on building a standalone version of Zint Studio using Visual

Studio 2015, see "frontend_qt\howto_build_qzint_using_msvs2015.txt"





CMake and Visual Studio

-----------------------



Zint can also be built using CMake with Visual Studio 2022, 2019, 2017 or 2015.

The following example uses Visual Studio 2019 to build for x86/Win32:



As above, follow the steps to build zlib, lpng and gs1encoders.



This example uses Qt 5.15.2 and component "MSVC 2019 32-bit" so install them and

add to path (your path may differ):



  set "PATH=C:\Qt\5.15.2\msvc2019\bin;%PATH%"



Now build zint, passing the locations zlib, lpng and gs1encoders:



  cd zint

  cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_BUILD_TYPE=Release -B build^

        -DZLIB_ROOT="%cd%\..\zlib" -DPNG_ROOT="%cd%\..\lpng"^

        -DGS1SE_PATH="%cd%\..\gs1-syntax-engine\src\c-lib"

  cmake --build build --config Release

  cd ..



You should be able to run zint CLI and Zint Studio:



  set "PATH=%cd%\zint\build\backend\Release;%PATH%"

  zint\build\frontend\Release\zint.exe

  zint\build\frontend_qt\Release\zint-qt.exe



Note that the program name for Zint Studio when built using CMake is not

"qtZint.exe" but "zint-qt.exe".



For MSVC 2015 32-bit, MSVC 2017 32-bit and MSVC 2022 32-bit, the zint cmake

equivalents are (include the library locations as above):



  cmake -G "Visual Studio 14 2015" -DCMAKE_BUILD_TYPE=Release -B build^

  cmake -G "Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=Release -B build^

  cmake -G "Visual Studio 17 2022" -A Win32 -DCMAKE_BUILD_TYPE=Release -B build^



To build as 64-bit, open an "x64 Native Tools" Command Prompt and follow the

same instructions, using "MSVC 2019 64-bit" (or "MSVC 2022 64-bit") as the Qt

component and dropping "-A Win32" from the "cmake -G" invocation if present.





Visual C++ 6

------------



The zint library and command line tool can be built using VC6 (but not with GS1

Syntax Engine support).



See "win32\zint_cmdline_vc6\readme.txt"





MinGW/MSYS

----------



If not already installed, download and run the MinGW Installation Manager setup

(https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/) and

using it install the packages:



  mingw-developer-toolkit-bin

  mingw32-base-bin

  mingw32-gcc-g++-bin

  msys-base-bin



(This should include mingw32-libz-dll)



Any reasonably modern version of Qt can be used. The following uses Qt 5.15.2.

Using the Qt Maintenance Tool (see the Visual Studio 2022 instructions above)

install the "MinGW 8.1.0 32-bit" component.



(Note the Qt MinGW versions actually refer to Mingw-w64, the 64-bit fork of

MinGW, but versions up to 8.1.0 at least are compatible.)



Open a MinGW/MSYS shell by clicking/running e.g. (your path may differ)



  C:\MinGW\msys\1.0\msys.bat



As above make sure git and cmake are in your PATH.



Add the Qt MinGW 8.1.0 32-bit component to your PATH, e.g. (your path may

differ):



  export PATH="/c/Qt/5.15.2/mingw81_32/bin":${PATH}



Go into the directory you want to use and clone zint and libpng:



  cd <project-directory>



  git clone https://git.code.sf.net/p/zint/code zint

  git clone https://git.code.sf.net/p/libpng/code lpng



To compile lpng on MSYS, a bit of fiddling is needed. Go to the directory:



  cd lpng



On Windows git usually converts UNIX line endings to DOS ones. Undo this:



  dos2unix * scripts/*



Attempt to do the usual GNU make:



  ./configure

  make



This will fail with a syntax error. To fix:



  sed -i 's/\r//' pnglibconf.h



(ignore "preserving permissions" warning if any)



And then do the make again:



  make

  make install



  cd ..



The lpng includes should be in "/usr/local/include". Tell gcc to search there by

setting C_INCLUDE_PATH:



  export C_INCLUDE_PATH=/usr/local/include



Now we should be able to build zint normally, except for telling cmake to

generate MSYS compatible makefiles:



  cd zint



  mkdir build

  cd build

  cmake -G "MSYS Makefiles" ..

  make



  cd ../..



This creates:



zint/build/backend/libzint.dll

zint/build/frontend/zint.exe

zint/build/backend_qt/libQZint.lib

zint/build/frontend_qt/zint-qt.exe



The Zint command line tool "zint.exe" and Zint Studio "zint-qt.exe" need

"libzint.dll" to run so add its location to your PATH:



  export PATH="$(pwd)/zint/build/backend":${PATH}



You should now be able to run the command line tool:



  zint/build/frontend/zint



And Zint Studio:



  zint/build/frontend_qt/zint-qt