This is a manual port of ZXing to C++. It has been tested on Linux, Mac OS X and Windows.
SCons is a build tool written in Python. You'll need to have Python
installed, but scons installation is optional: a run time copy of
SCons (called scons-local
) is included. To use the included copy,
replace scons
with python scons/scons.py
in the instructions below.
To build the library only:
- Install libiconv (optional; included in many operating systems)
cd
to thecpp
folder- Run
scons lib
To build the command line utility utility:
- Run
scons zxing
- Run
build/zxing
for a command line reference
To build the unit tests (optional):
- Install CppUnit (
libcppunit-dev
on Ubuntu) - Run
scons tests
- Run
build/testrunner
To clean:
- Run
scons -c all
CMake is a tool, that generates native makefiles and workspaces. It integrates well with a number of IDEs including Qt Creator and Visual Studio.
Usage with Qt Creator:
- Open
CMakeLists.txt
as new project - Specify command line arguments (see below) and press Finish
Usage with Makefiles, Visual Studio, etc. (see cmake --help
for a complete list of generators):
cd
tocpp/build
- Unix: run
cmake -G "Unix Makefiles" ..
- Windows: run
cmake -G "Visual Studio 10" ..
You can switch between build modes by specifying:
-DCMAKE_BUILD_TYPE=Debug
or-DCMAKE_BUILD_TYPE=Release
To profile the code (very useful to optimize the code):
- Install Valgrind
- Run
valgrind --tool=callgrind build/zxing - path/to/test/data/*.jpg > report.html
- Analyze output using KCachegrind
To run the black box tests and check for changes:
- Build
zxing-img
, e.g., scons zxing - Run the tests:
bash blackboxtest.sh 2>&1 | tee bb.results
- Diff them with the known results:
diff bb.results blackboxtest.results