Macbook编译安装SAGA

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013832676/article/details/78179190
在macbook上编译安装saga在saga wiki上有详细的介绍教程,地址 https://sourceforge.net/p/saga-gis/wiki/Compiling%20SAGA%20on%20Mac%20OS%20X/
讲的很详细,一步一步的安装即可,其中遇到了几个问题在这里介绍一下解决方法:
1、教程里的资源要求:

  • OS X 10.9 (Mavericks) 
  • Xcode 5.1 
  • SAGA 2.1.2 source code 
  • wxWidgets 3.0.0 source code 
  • JasPer 1.900.1 source code 
  • GDAL 1.11 framework and PROJ 4.8 framework 
  • PROJ 4.8 projects.h header file 
  • GNU autoconf, automake and libtool packages 
  • TextWrangler text editor (这个可以不装,就是一个编辑器)

他使用的是10.9的我当前是10.12的,所以在后面安装过程中需要对应做出修改;
其余的source都下载最新版本就可以,不建议使用svn下载源码,在网页上找到tar.gz的下载下来就可以,这个在教程中有着重说明,如下所示:
Important!  Be sure to download the  .tar.gz  file,  not  the .zip file.
2、按照教程说明逐步下载完各个文件包并解压,放到统一的文件目录下。
3、Building
(1)首先build Jasper按照步骤一般不会出现问题;
(2)build wxWidgets
首先创建一个build目录,然后进入该目录:
mkdir build-cocoa-debug
cd build-cocoa-debug
然后在命令行下运行以下命令:
../configure --enable-unicode --enable-debug --enable-shared --enable-monolithic --with-osx_cocoa --enable-macosx_arch=x86_64 \
--with-macosx-version-min=10.9 \
--with-macosx-sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk \
CXX="/usr/bin/clang++

注意此处需要做修改,就是MacOSX的sdk选项版本应该改成和自己系统版本对应的,我的就改成了:

../configure --enable-unicode --enable-debug --enable-shared --enable-monolithic --with-osx_cocoa --enable-macosx_arch=x86_64 \
--with-macosx-version-min=10.9 \
--with-macosx-sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk \
CXX="/usr/bin/clang++"
完成之后开始make, 这个过程中对于10.12版本的系统会有问题,报错曰:
fatal   error:   'QTKit/QTKit.h'   file   not   found  
搜索问题得到的答案是说12版本上没有qt framework了,所以没有对应的文件。解决方案是将文件拷贝到系统/资源/library/framework之下,然并卵。
真正的解决方案就是将QTKit目录 /QTKit.framework/Headers
下面的所有的header都放到: /Users/******/saga/wxWidgets-3.1.0/include 目录下面。
然后开始make没有报错,
make完成之后运行sudo make install使生成的wxWidgets库拷贝进入   /usr/local/lib下。

(3)Build GNU的包没有什么可说的
(4)Build SAGA
首先需要对saga_gui目录下的Makefile.am文件进行修改,这里做这个修改的目的是避免生成gui,因为saga在macosx上的gui有问题:
  • Edit src/saga_core/saga_gui/Makefile.am and delete "aui,base," and "propgrid," from the first AM_LDFLAGS line.
For some reason, the make tries to link against these libraries, which are part of the monolithic wxWidgets library.
Note you can skip this edit if you use --disable-gui switch (see below).

另一个需要注意的问题:
教程里支出编辑io_gdal目录下的Makefile.am文件,
  • Edit src/modules/io/io_gdal/Makefile.am and add " -F/Library/Frameworks -framework GDAL" to the AM_LDFLAGS line.
这个目录在我使用的SAGA 5.0.0版本中找不到了,实际上应在 /Users/******/saga/saga-5.0.0/src/tools/io/io_gdal 下面。
然后就开始build了,在saga的根目录下运行autoreconf -i,
然后使用文本编辑器在该目录下创建一个脚本文件,按照教程中的介绍命名为:

将一下内容拷贝进去并保存,
需要作出的修改就是讲sdk版本改成和自己系统对应的版本

FEATURES="--enable-debug --disable-openmp --disable-gui --disable-odbc"
CXX="/usr/bin/clang"
DEFINES="-D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__"
GDAL_H="-I/Library/Frameworks/GDAL.framework/Headers"
PROJ_H="-I/Library/Frameworks/PROJ.framework/Headers"
GDAL_SRCH="-L/Library/Frameworks/GDAL.framework/unix/lib"
PROJ_SRCH="-L/Library/Frameworks/PROJ.framework/unix/lib"
LINK_MISC="-arch x86_64 -mmacosx-version-min=10.9 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -lstdc++"
./configure $ FEATURES CXX=" $ CXX " CPPFLAGS=" $ DEFINES $ GDAL_H $ PROJ_H " LDFLAGS=" $ GDAL_SRCH $ PROJ_SRCH $ LINK_MISC

然后按照教程介绍运行脚本文件。
(5)完成以上步骤之后开始make,然后sudo make install就完成了。
(6)完成之后在usr/local/bin目录下可以找到sagacmd文件,使用命令行窗口调用就可以使用了。

教程最后一个很无语,说是可以直接使用fink来安装saga,没有尝试。

猜你喜欢

转载自blog.csdn.net/u013832676/article/details/78179190