Qtiplot发布了新版本0.9.7.4,变动不小,编译过程也相应的需要发生一些变化。
首先是第三方库的编译:
qwtplot3d已经整合到主程序的编译过程中去了,所以不需要单独编译了,只需要保留官方包里面默认的即可;
gsl,muparser,qwt,zlib还是和先前版本一样,参见前帖《编译Win版本Qtiplot》。其中,gsl直接使用msys编译安装,安装到3rdparty下的gsl目录;muparser使用build目录下自带的makefile.mingw来编译;qwt使用Qt工具直接qmake make编译成静态库;zlib就直接下载zlib123-dll.zip放到zlib123去就可以了。
新使用的boost,首先下载boost_1_38_0.tar.bz2,解压缩出来,然后下载boost-jam-3.1.17-1-ntx86.zip,将其中的工具bjam.exe放到boost的根目录下,然后在命令行中(环境变量中要有mingw的bin目录)使用命令"bjam "toolset=gcc" install",经过漫长的等待就可以在C:\boost目录下看到编译好的boost了,拷到3rdparty备用。
还有就是libpng的编译,这个库本身有配置好的make文件scripts\makefile.mingw,但是需要zlib的支持,所以还需要跟libpng一级的目录下放上zlib的源代码zlib-1.2.3.tar.gz,目录即为zlib,zlib还要预先在msys下用./configure make编译好。
编译好第三方库之后,再修改qtiplot.pro,准备编译主程序。主要的一个就是3rd PARTY HEADER FILES SECTION里面的路径和3rd PARTY LIBRARIES SECTION下的win32:XXX的路径,根据实际情况进行修改。还有一个是# Comment the next line, if you dont have libpng on your windows system段下面的libpng路径的修改,如果按照官方做法来,几乎不需要调整,我这里只有boost的headers需要改变。目录结构参见文章结尾。
另一个重要的修改就是python的屏蔽,因为python的支持需要特定的版本的python pyqt sip的支持,所以一般都不使用。首先是要把qtiplot.pro里面的第三行# SCRIPTING_LANGS += Python屏蔽好,但是新版本中仅仅这样还不够,还会在连接的时候出现ScriptEdit.cpp中对PythonSyntaxHighlighter的undefined reference。我折腾了几个礼拜,终于在网上找到了qtiplot的patch——qtiplot-0.9.7.4-no-python.patch,原来是要修改一下这个文件。把qtiplot-0.9.7.4\qtiplot\src\scripting\ScriptEdit.cpp单独拿出来跟qtiplot-0.9.7.4-no-python.patch放在一起,然后在msys下使用命令patch –i qtiplot-0.9.7.4-no-python.patch,再把修改好的ScriptEdit.cpp放回去,这样就可以真正屏蔽python了。
经过这样的准备工作之后,就是qmake make了,然后就可以得到编译好的主程序。如果需要多语言支持,可以在qmake之前把qtiplot.pro中的
#system(lupdate -verbose qtiplot.pro)
#system(lrelease -verbose qtiplot.pro)
两句话解除屏蔽,就可以得到语言文件。
目录:
qtiplot-0.9.7.4
—3rdparty
——boost
——gsl
——liborigin
——libpng
——muparser
——qwt
——qwtplot3d
——zlib(libpng用的)
——zlib123
2 条评论:
Thanks for your post. Have two questions?
1. Have you tried compiling QtiPlot0.9.7.5?
2. How to build files under \manual in windows?
Thanks
0.9.7.5 not yet
manual needs docbook to compile
so i compile it under linux
发表评论