Windows系统使用MinGW编译二维码库Zbar

⌚Time: 2022-11-08 17:54:18

👨‍💻Author: Jack Ge

环境搭建

zbar源码

https://zbar.sourceforge.net/

msys1.0

https://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.11/MSYS-1.0.11.exe/download

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