环境搭建
zbar源码
msys1.0
pkg-config for windows
https://sourceforge.net/projects/kde-windows/files/archive/pkg-config/
mingw
https://sourceforge.net/projects/mingw-w64/
libiconv
https://www.gnu.org/software/libiconv/
安装msys1.0
解压pkg-config,将pkg-config和libglib-2.0-0.dll文件复制到msys/1.0/bin目录
解压mingw,将bin目录添加到windows的PATH环境变量中
解压zbar、libiconv源码
编译libiconv
打开msys,进入到libiconv源码目录
./configure
make
make install
生成的libiconv库在msys/1.0/local文件夹下。移动到D:\libs\libiconv文件夹下,在编译zbar时使用。
可以将libiconv include目录下的头文件加入mingw48_32\i686-w64-mingw32的include文件夹下,将lib目录下的库文件加入mingw48_32\i686-w64-mingw32的lib目录,zbar configure会自动检测到库信息并且生成makefile文件
或者在zbar configure完成后,手动修改makefile文件,指定LDFLAGS和CPPFLAGS变量为libiconv库的参数
编译zbar
打开msys,进入到zbar源码目录
如果使用到gtk,电脑上安装gtk库,将gtk库的lib/pc文件夹加入windows的PKG_CONFIG环境变量,使pkg-config工具能够检测到,并且打开--with-gtk开关
configure
./configure --enable-shared --without-jpeg --without-python --without-gtk --without-qt --without-imagemagick
checking for memset... yes
checking for atexit... yes
checking for setenv... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating zbar.pc
config.status: creating zbar-gtk.pc
config.status: creating zbar-qt.pc
config.status: creating doc/doxygen.conf
config.status: creating include/config.h
config.status: include/config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing doc/version.xml commands
config.status: executing doc/reldate.xml commands
please verify that the detected configuration matches your expectations:
------------------------------------------------------------------------
X --with-x=no
pthreads --enable-pthread=no
v4l --enable-video=yes
jpeg --with-jpeg=no
=> JPEG image conversions will *NOT* be supported
Magick++ --with-imagemagick=no
=> the zbarimg file scanner will *NOT* be built
Python --with-python=no
GTK+ --with-gtk=no
=> the GTK+ widget will *NOT* be built
Qt4 --with-qt=no
=> the Qt4 widget will *NOT* be built
make
make install
编译完成后在msys/1.0/local文件夹下生成zbar库

将编译好的zbar库放入D:\libs\zbar文件夹,将libs\pc文件夹加入到PKG_CONFIG环境变量中,使用以下命令确定编译链接参数
pkg-config --cflags --libs zbar

如果出现
undefined reference to `__imp_GetACP@0'
编译时加上链接参数-liconv