1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
|
% README.linux 2025-12-15
% Tested on Ubuntu 20.04.4 LTS, Ubuntu 22.04 LTS, Ubuntu 24.04 LTS and
% Fedora Linux 43 (Workstation Edition)
1. Prerequisites for building zint
==================================
Prerequisites are git, cmake, make, gcc and gcc-c++, e.g. Ubuntu/Debian
sudo apt install git cmake build-essential
or Fedora (git, make and gcc should already be installed)
sudo dnf install cmake gcc-c++
libpng is optional but necessary for PNG support, e.g. Ubuntu/Debian
sudo apt install libpng-dev
or Fedora
sudo dnf install libpng-devel
gs1encoders is optional but necessary for GS1 Syntax Engine support. To install clone the repo:
git clone https://github.com/gs1/gs1-syntax-engine
and navigate to "src/c-lib" and make:
cd gs1-syntax-engine/src/c-lib
make lib && sudo make install
cd ../../..
Now either download the zint source code tarball
wget -O zint-2.16.0-src.tar.gz \
https://sourceforge.net/projects/zint/files/zint/2.16.0/zint-2.16.0-src.tar.gz/download
tar xf zint-2.16.0-src.tar.gz
cd zint-2.16.0-src
or clone the latest source
git clone https://git.code.sf.net/p/zint/code zint
cd zint
2. Prerequisites for building zint-qt
=====================================
zint-qt can be built with either Qt5 (preferred) or Qt6. First, install mesa (for OpenGL), e.g.
Ubuntu/Debian
sudo apt install mesa-common-dev libglu1-mesa-dev
or Fedora
sudo dnf install mesa-libGL mesa-libGL-devel
zint-qt has issues running on Wayland so sets X11 as the Qt platform (via the environment variable
"QT_QPA_PLATFORM=xcb") on startup unless already set.
2.1. Using Qt packages
----------------------
If packages for Qt exist for your distro, it might be easiest to use them, although knowing
what their ever-changing names and contents are isn't. A complication is that zint-qt uses 2 Qt
components beyond the basic setup: Qt UI Tools (for dynamically loading the symbology-specific
tabs), and Qt SVG (for rendering icons).
E.g. on Ubuntu 22.04 or 24.04
sudo apt install qtbase5-dev qttools5-dev qttools5-dev-tools libqt5svg5-dev
or Ubuntu 20.04
sudo apt install qt5-default qt5-uitools
or Fedora (not recommended)
sudo dnf install qt5-qtbase-devel qt5-qttools-devel qt5-qttools-static qt5-qtsvg-devel
You may need to tell CMake where to find the ".cmake" modules:
export CMAKE_MODULE_PATH=<cmake-module-path>/Qt5
e.g. CMAKE_MODULE_PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt5
2.2. Using the Qt Maintenance Tool
----------------------------------
Alternatively, for a more consistent experience, sign up and download the Qt Maintenance Tool
from
https://www.qt.io/download-qt-installer
On Ubuntu/Debian you may need to install xinerama to run the tool:
sudo apt install libxcb-xinerama0
Launch the tool and install the "Desktop gcc 64-bit" component for either Qt 5.15.2 (preferred)
or Qt 6 (>= 6.1).
Once Qt is installed you may need to tell CMake where it is:
export CMAKE_PREFIX_PATH=<qt-version-dir>/gcc_64
e.g. export CMAKE_PREFIX_PATH=/opt/Qt/5.15.2/gcc_64
3. Build
========
The rest is standard CMake
cd zint
mkdir build
cd build
cmake ..
make
sudo make install
4. Run
======
On Fedora you may have to set LD_LIBRARY_PATH for zint ("libzint.so") and zint-qt (Qt libraries):
export LD_LIBRARY_PATH=/usr/local/lib64:<qt-version-dir>/gcc_64/lib
5. CMake options
================
A number of options are available:
ZINT_DEBUG:BOOL=OFF # Set debug compile flags
ZINT_NOOPT:BOOL=OFF # Set no optimize compile flags
ZINT_SANITIZE:BOOL=OFF # Set sanitize address/undefined
ZINT_SANITIZEM:BOOL=OFF # Set sanitize memory (ignored if ZINT_SANITIZE)
ZINT_TEST:BOOL=OFF # Set test compile flag
ZINT_COVERAGE:BOOL=OFF # Set code coverage flags
ZINT_SHARED:BOOL=ON # Build shared library
ZINT_STATIC:BOOL=OFF # Build static library
ZINT_FRONTEND:BOOL=ON # Build frontend
ZINT_USE_GS1SE:BOOL=ON # Build with GS1 Syntax Engine
ZINT_USE_PNG:BOOL=ON # Build with PNG support
ZINT_USE_QT:BOOL=ON # Build with Qt support
ZINT_QT6:BOOL=OFF # If ZINT_USE_QT, use Qt6
ZINT_UNINSTALL:BOOL=ON # Add uninstall target
which can be set by doing e.g.
cmake -DZINT_SANITIZE=ON ..
Note that ZINT_SANITIZEM (Clang only) is incompatible with ZINT_SANITIZE, and also with
ZINT_USE_PNG, unless libpng has also been instrumented with -fsanitize=memory.
For details on ZINT_TEST and building the zint test suite, see "backend/tests/README".
|