在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,
然后使用文本编辑器在该目录下创建一个脚本文件,按照教程中的介绍命名为:
touch
my-saga-config.sh
将一下内容拷贝进去并保存,
需要作出的修改就是讲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,没有尝试。