项目须要生成和打开pdf文件,编译了pdflib库,能够使用。可是上面有水印。
。。假设是商业用途去水印的话须要获得许可。
没办法。换呗。
然后就是poppler,这个库的功能非常强大,里面更是增加了Qt的支持,刚好适合项目需求。
可是。
。
。
可是前前后后加起来编译poppler半个多月一直失败,网上也没找到解决的方法,我真是醉了。这个poppler支持Qt应该是最好的选择方式了,没办法,隔一段时间继续编译。
下面是自己编译过程中遇到的问题记录下来。望后来的人少走弯路。
1.支持库的编译
我的编译一直失败。開始以为是库的支持不够,就将它显示的库所有交叉编译了。最后一直报libpoppler-glib.so wrong format。
Required
Recommended
Cairo-1.14.2, libjpeg-turbo-1.4.1, libpng-1.6.17, and OpenJPEG-1.5.2
仅仅须要Fontconfig库就能够了,其它的库仅仅是推荐的,然后我就将原本的Cairo和glib库都去掉了。最后的configuer配置例如以下PKG_CONFIG_PATH=/opt/poppler/lib/pkgconfig FONTCONFIG_CFLAGS="-I/opt/poppler/include/fontconfig/" FONTCONFIG_LIBS="-L/opt/poppler/lib -lfontconfig" FREETYPE_CFLAGS="-I/opt/poppler/include/freetype2/" FREETYPE_LIBS="-L/opt/poppler/lib -lfreetype" LIBTIFF_CFLAGS="-I/opt/poppler/include" LIBTIFF_LIBS="-L/opt/poppler/lib -ltiff" LIBOPENJPEG_CFLAGS="-I/opt/poppler/include/openjpeg-1.5" LIBOPENJPEG_LIBS="-L/opt/poppler/lib -lopenjpeg" LIBJPEG_CFLAGS="-I/opt/poppler/include" LIBJPEG_LIBS="-L/opt/poppler/lib -ljpeg" CC=arm-linux-gcc CPPFLAGS="-I/opt/poppler/include" CFLAGS="-I/opt/poppler/include" LDFLAGS="-L/opt/poppler/lib -lz -ljpeg" ./configure --host=arm-linux --prefix=/opt/poppler --enable-libjpeg --enable-libpng --disable-cairo-output
2、Qt库错误
PKG_CONFIG_PATH=/opt/poppler/lib/pkgconfig FONTCONFIG_CFLAGS="-I/opt/poppler/include/fontconfig/" FONTCONFIG_LIBS="-L/opt/poppler/lib -lfontconfig" FREETYPE_CFLAGS="-I/opt/poppler/include/freetype2/" FREETYPE_LIBS="-L/opt/poppler/lib -lfreetype" LIBTIFF_CFLAGS="-I/opt/poppler/include" LIBTIFF_LIBS="-L/opt/poppler/lib -ltiff" LIBOPENJPEG_CFLAGS="-I/opt/poppler/include/openjpeg-1.5" LIBOPENJPEG_LIBS="-L/opt/poppler/lib -lopenjpeg" LIBJPEG_CFLAGS="-I/opt/poppler/include" LIBJPEG_LIBS="-L/opt/poppler/lib -ljpeg" CC=arm-linux-gcc CPPFLAGS="-I/opt/poppler/include" CFLAGS="-I/opt/poppler/include" LDFLAGS="-L/opt/poppler/lib -lz -ljpeg" POPPLER_QT4_CFLAGS="-I/opt/qt-4.8.5-embedded/include" POPPLER_QT4_LIBS="-L/opt/qt-4.8.5-embedded/lib -lQtGui -lQtCore" ./configure --host=arm-linux --prefix=/opt/poppler --enable-libjpeg --enable-libpng --disable-cairo-output
假设不须要qt的支持应该已经能够使用了
3、tslib库问题
/opt/qt-4.8.5-embedded/lib/libQtGui.so: undefined reference to `ts_read_raw' /opt/qt-4.8.5-embedded/lib/libQtGui.so: undefined reference to `ts_open' /opt/qt-4.8.5-embedded/lib/libQtGui.so: undefined reference to `ts_fd' /opt/qt-4.8.5-embedded/lib/libQtGui.so: undefined reference to `ts_config' /opt/qt-4.8.5-embedded/lib/libQtGui.so: undefined reference to `ts_close' /opt/qt-4.8.5-embedded/lib/libQtGui.so: undefined reference to `ts_read'非常多人都说这个问题是由于没有改动arm-linux-g++/qmake.conf文件。即没有增加
QMAKE_CC = arm-linux-gcc -lts
QMAKE_CXX = arm-linux-g++ -lts
QMAKE_LINK = arm-linux-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-g++ -lts
发现出错的是qt4目录下的demo和tests目录的编译,果断在Makefile中去掉了这两个目录的编译。