File: README.linux

package info (click to toggle)
zxing-cpp 3.0.0%2Bds-1~exp2
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 30,204 kB
  • sloc: ansic: 69,384; cpp: 34,587; php: 2,790; python: 199; makefile: 30; sh: 3
file content (158 lines) | stat: -rw-r--r-- 4,535 bytes parent folder | download | duplicates (5)
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".