Skip to content

Latest commit

 

History

History
163 lines (87 loc) · 7.29 KB

build.md

File metadata and controls

163 lines (87 loc) · 7.29 KB

构建说明

Window下构建步骤

下面将记录为windows下构建SA的流水记录:

总结出来有以下操作:

  • 1、拉取项目
  • 2、运行src/SARibbonBar/updateSARibbon.sh拉取SARibbonBar
  • 3、运行3rdParty.pro
  • 4、运行sa.pro

完成

fftw和gsl的dll文件位于各自目录下的7z压缩文件,这些将用在编译完成后的bin-xx目录下:

1.拉取SA项目

打开gitbashcd到一个英文路径下,注意路径别有中文,敲入下面的脚本拉取SA

git clone https://github.com/czyt1988/sa.git

等待SA的拉取

git clone https://github.com/czyt1988/sa.git

2.下载并构建第三方库

目前第三方库的构建已经自动集成到sa3rdParty.pro,运行sa3rdParty.pro即可构建,想了解详情可细看下面小点介绍

  • 1.下载FFTW

我已经把必要文件放置在src/3rdParty/fftw,此步骤可忽略 打开网址FFTW For Windows : http://www.fftw.org/install/windows.html 下载对应的版本

fftw for windows download page

虽然是用MinGW编译的,但是经测试vs2003到vs2015都可以正常使用,所以为了免去不必要麻烦,建议直接使用它们已经编译好的dll,这里我们后续需要用到libfftw3-3.dll,lib文件和头文件已经在./src/3rdParty/fftw中配置好,理论不需要重新配置,若想重新配置fftwlib请参考文档:doc/buildFFTW.md

  • 2.下载GSL库

我已经把必要文件放置在src/3rdParty/gsl,此步骤可忽略

GSL For Window人家也像我一样很贴心的把所有东西都打包好了,包括dll和lib文件,你都不用费劲自己编译,下载地址见:GSL for windows

SA把gsl相关文件放置在./src/3rdParty/gsl,包括头文件,lib文件,dll文件。 dll文件具体见百度网盘-gsl文件 提取码:k5e5

  • 3.QWT库的构建

为了省事,SAQWT的源码都放置在src/3rdParty/qwt/

要编译qwt只需要用Qt Creator运行src\3rdParty\qwt\qwt.pro,点build,等待10分钟即可,若不做特殊处理,将会在目录src\3rdParty上生成一个build-qwt-xx文件夹:

build qwt folder

编译完后会自动在lib文件夹下建立对应版本的目录,如下图(msvc,Qt5.9为例)

copy qwt lib to folder

编译的dll文件(release模式下qwt.dll,debug模式下qwtd.dll)将要放置到sa的bin_xx_debug/release目录下,这个目录需要先编译sa.pro才能生成

至此目前SA所需的第三方库准备完成,需要有如下内容:

  • fftw:

根据系统位数会加载下面的一个

src/3rdParty/fftw/fftw32/libfftw3-3.lib

src/3rdParty/fftw/fftw64/libfftw3-3.lib

  • gsl:

src/3rdParty/gsl/lib/libgsl.lib

src/3rdParty/gsl/lib/libgslcblas.lib

  • qwt 会根据编译环境而不同(qwt编译的lib路径不要改变,编译sa.pro时会自动寻找)

src/3rdParty/qwt/lib/{msvc/mingw32}/$${QT_MAJOR_VERSION}$${QT_MINOR_VERSION}$${QT_PATCH_VERSION}/libqwt.a

src/3rdParty/qwt/lib/{msvc/mingw32}/$${QT_MAJOR_VERSION}$${QT_MINOR_VERSION}$${QT_PATCH_VERSION}/libqwtd.a

3.拉取SARibbon

在完成上述步骤后,通过gitbash或其他,进入SA目录:src/SARibbonBar/,运行updateSARibbon.sh

./updateSARibbon.sh

此脚本会自动把SARibbon拉取下来,这是SA界面的Ribbon控件库。

windows下,直接进入目录双击脚本也可以,如果没有安装gitbash,可以在https://github.com/czyt1988/SARibbon下载并把SARibbon文件夹放在src/SARibbonBar文件夹下,保证SARibbon.pro的位置在src/SARibbonBar/SARibbon.pro

不需要编译SARibbon库,因为sa.pro会自动编译此库。

若想单独编译构建SARibbon只需用Qt Creator打开SARibbon.pro并构建,若不更改配置,将会生成src\SARibbonBar\SARibbon\bin_qtx.x.x_{debug/release}\路径,其中包含一个示例程序和SARibbonBar.libSARibbonBar.dll

build SARibbon

生成的SARibbonBar.lib文件位置请不要更改,SA项目将引用此路径。自此SARibbonBar构建完成。

4.构建SA

使用Qt Creator 打开src/sa.pro,点构建,保证以下库存在则可顺利完成SA的构建:

    1. qwt库 ,根据编译环境不同和Qt版本不同会有不同路径,如Qt5.9.0下msvc编译将产生:src/3rdParty/qwt/lib/msvc/5_9_0/qwt.lib
    1. fftw库,位于src/3rdParty/fftw/fftw32/libfftw3-3.lib,头文件位于src/3rdParty/fftw/fftw32/fftw.h,64位位于fftw64文件夹下
    1. gsl库,位于src/3rdParty/gsl/lib/libgsl.libsrc/3rdParty/gsl/lib/libgslcblas.lib,头文件位于src/3rdParty/gsl/include/gsl/*.h
    1. SARibbonBar库的源码,SARibbonBar可以不需要提前编译,但必须保证源码SARibbon目录位于src/SARibbonBar文件夹下,若已经编译,不要改变编译生成的bin_qtx.x.x_{debug/release}文件夹名称

此时sa的结构目录为:

sa tree

确认上述文件配置完成,自己通过Qt Creator构建sa.pro

构建完成后会有程序运行异常提示,同时生成src/bin_qtx.x.x_{debug/release}文件夹

finish build

程序运行异常是因为缺少必要的dll,此时src/bin_qtx.x.x_{debug/release}文件夹如下图所示:

copy dll

需要把必要的dll拷贝到此目录下:

需要拷贝的dll如下:

    1. [可选]src/bin_qtx.x.x_{debug/release}/lib文件夹下的dll拷贝到src/bin_qtx.x.x_{debug/release}目录下,Qt Creator+MinGW 并不需要此步骤,但Qt Creator+MSVC在一些版本里需要此步骤
    1. 之前构建qwt对应的dll拷贝到src/bin_qtx.x.x_{debug/release}目录下,debug模式为qwtd.dll,release模式下为qwt.dll
    1. FFTW库的dll,此版本SA使用的是libfftw3-3.dll需要拷贝到src/bin_qtx.x.x_{debug/release}下(注意FFTW有double版本,float版本,long double版本,每个版本对应不同的dll,目前SA只用了double版本也就是libfftw3-3.dll)
    1. GSL库的dll,libgsl.dlllibgslcblas.dll需要拷贝到src/bin_qtx.x.x_{debug/release}

再运行Qt Creatorbuild即可看到程序运行

此时目录下文件应该如下图所示(Debug模式)

sa dll files

软件运行起来的截图

sa

Ubuntu下布置

TODO