Ubuntu下编译SHTOOLS
SHTOOLS是使用Fortran语言写的一个专门用于处理球谐函数的一个开源库,更多的介绍请猛戳这里,关于这个库的安装和使用,都在官网上有详细的说明,虽然很详细,但是编译的时候还是比较费劲,下面将我在Ubuntu下编译的步骤记录下。
首先SHTOOLS需要依赖三个库,分别是FFTW库,BLAS库和LAPACK库。FFTW库是傅立叶变换的库,只能用一句很好很强大来说明了,前段时间自己写了一个图像的傅立叶变换,处理一幅图像(12208×12208)的16bit但波段图像,进行MTF复原,整整需要5分钟多,之后将MTF中的傅立叶变换的代码使用fftw库替换,处理时间只有50秒,总之一句话非常强大(话说matlab里面傅立叶变换也是用的这个库)。剩下的BLAS和LAPACK就是用fortran写的一个线性代数相关的库。
1、下载所需要的库,一共四个库,其中SHTOOLS一个,另外三个是SHTOOLS所依赖的。下载地址分别为:
名称 |
下载地址 |
SHTOOLS |
http://www.ipgp.fr/~wieczor/SHTOOLS2.8.tar.Z |
FFTW3 |
http://www.fftw.org/fftw-3.3.3.tar.gz |
BLAS |
http://www.netlib.org/blas/blas.tgz |
LAPACK |
http://www.netlib.org/lapack/lapack-3.4.2.tgz |
下载完将上面四个压缩包放到一个目录并解压,我这里是/home/liminlu/3rdPart,如下图:
在编译之前要确保自己的电脑安装gfortran和tbsh,使用命令安装这两个工具。
sudo apt-get install gfortran
sudo apt-get install tbsh
注意输入上面的安装命令后,会提示你输入密码,输入密码时终端没有任何反应,直接输入完回车即可。
2、编译fftw
打开终端,cd到fftw-3.3.3目录,然后输入
.\configure
等待配置完成,然后再输入
make
等待编译完成,然后再输入
sudo make install
输入完会提示你输入你的密码,输入密码回车,fftw库就安装好了。
3、编译BLAS库
打开终端,cd到BLAS目录,然后直接输入make回车就等待编译完成即可。完成之后在BLAS目录下会生成一个blas_LINUX.a文件,需要将该文件改名。重命名为libblas.a然后将该文件拷贝到/usr/local/lib目录,直接拷贝会提示没有权限,所以需要使用sudo命令拷贝。
在终端输入:
sudo cp /home/liminlu/3rdPart/BLAS/libblas.a/usr/local/lib
回车后,该文件已经拷贝到/usr/local/lib目录中,BLAS库安装完成
4、编译LAPACK
打开终端,cd到LAPACK的目录,然后需要将文件make.inc.example重命名为make.inc。然后在终端里面输入make回车,等待编译完成。编译完成后会在目录中生成两个文件liblapack.a和libtmglib.a。然后使用cp命令将这两个.a文件拷贝到/usr/local/lib目录,命令如下:
sudo cp/home/liminlu/3rdPart/lapack-3.4.2/liblapack.a /usr/local/lib
sudo cp /home/liminlu/3rdPart/lapack-3.4.2/libtmglib.a/usr/local/lib
至此,LAPCAK库也安装完成,SHTOOLS所需要的三个库都已经安装,安装目录如下:
5、编译SHTOOLS
编译SHTOOLS之前需要修改几个Makefile文件中的内容。分别是根目录下的Makefile,第55行修改为:
F95 = gfortran
src目录下的Makefile,第26行,修改为:
F95 = gfortran
examples目录下的Makefile,第15行,修改为:
F95 = gfortran
修改完上面的三个文件保存,然后打开终端,cd到SHTOOLS目录,直接输入make回车,如下图:
等待编译完成,完成后会提示下面的信息:
编译完成后,直接输入下面的命令编译SHTOOLS中的例子:
make examples
例子编译完成后会输出下面的信息。
至此,所有的步骤编译完成。
Ubuntu下编译SHTOOLS的更多相关文章
- ubuntu下编译caffe
Ubuntu下编译caffe 纯粹是个人编译的记录.不用CUDA(笔记本是amd卡,万恶的nvidia):不手动编译依赖包(apt-get是用来干啥的?用来直接装二进制包,以及自动解决依赖项的) ca ...
- ubuntu下编译VLC
ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...
- 在Ubuntu下编译wpa_supplicant
最近在研究WiFi联盟的多屏互动协议Miracast,其中需要用到wpa_supplicant,编译中遇到了一些问题,经过一下午的折腾也都解决了,下面分享给各位. 一.编译需要用到三个库源码包,分别是 ...
- 在Ubuntu下编译Assimp库
在Ubuntu下编译Assimp库 怎样在Ubuntu下编译Assimp库?这是我曾经编译成功后做的笔记,供參考. 1.去以下的站点去下载Assimp库: http://assimp.sourcefo ...
- ubuntu下编译java程序
ubuntu下编译java程序 首先需要安装jdk,并配置好相应环境变量 下面以简单的HelloWorld为例 文件名为HelloWorld.java java代码: public class Hel ...
- Ubuntu下编译Bilibili/ijkplayer
在做Android客户端视频播放器的过程中熟悉ijkplayer.他在视频支持协议上要比Android原生的mediaplayer做的要好.因此,自己也基于Bilibili/ijkplayer的重新编 ...
- 开源播放器 ijkplayer (五) :Linux/Ubuntu 下编译ijkplayer
一.安装Git与yasm sudo apt-get install git sudo apt-get install yasm 二.下载和配置 SDK.NDK SDK一般开发时肯定都有的,NDK一般是 ...
- 在Ubuntu下编译hadoop2.5.x
在Ubuntu下编译hadoop2.5.x 参考博客:http://www.aboutyun.com/thread-8130-1-1.html 1 下载hadoop源码: (1) http://www ...
- Ubuntu下编译Poco库
本文主要记录下Ubuntu下编译Poco C++库的配置项以备后用.系统版本:Ubuntu 16.04,1 Poco 版本:1.9.0基本的步骤如下: 1.从官网下载最新的Poco源码,地址是:htt ...
随机推荐
- 实验与作业(Python)-02 Python函数入门与温度转换程序
截止日期 实验目标 学会定义函数,使用函数.学会导入在某个文件中定义的函数. input获得值,然后通过eval或者int.float将其转换为相应的类型. 学会使用列表:访问列表.append.遍历 ...
- Swift按照数组元素出现的次数及大小排序
要求如下: 1.已知一个数组,按照单个元素在数组中出现的次数作为重新排序的依据,个数多的排在前面 2.相同个数时候,元素值大的排前面 例子: [1, 2, 2, 3, 5, 5] 经过计算得到的结果是 ...
- Thread Pools
许多程序会动态创建数十个设置上百个线程.举个例子,一个web服务器可能在每一个新到来的请求时创建一个新线程,然后在请求完成后将其终止. 然而,创建一个新线程将会带来一定的耗费:它需要在内核中创建自身必 ...
- CocoaChina(总结)升级到xcode8遇到的问题及解决方案
此总结由CocoaChina论坛版主wo709128079及广大坛友共同汇总.>>查看原帖 升级Xcode8已是必然,升级iOS 10的用户不能说大有人在,应该也不会少,楼主听说,如果不升 ...
- 剑指Offer——知识点储备-网络基础
剑指Offer--知识点储备-网络基础 计算机网络 http和https的区别 (1)http是http协议运行在tcp之上,所传输的内容都是明文,客户端和服务器端都无法验证对方的身份. (2)htt ...
- ROS(indigo) turtlebot2 + android一些有趣应用
ROS和Android配合使用非常有趣,这里推荐,ROSClinet,使用rosbridge让android和ROS通信: 具体参考奥斯卡的个人剧场:http://xxhong.net/ turtle ...
- AR模块常用函数
--AR模块常用函数 FUNCTION get_fnd_user_name ( p_user_id IN NUMBER ) return VARCHAR2 IS CURSOR c_user_name ...
- Web Service进阶(三)HTTP-GET, HTTP-POST and SOAP的比较
XML Web Service支持三种协议来与用户交流数据.这三种协议分别是: 1.SOAP:Simple Object Access Protocol 2.HTTP-GET 3.HTTP-POST ...
- UNIX网络编程——UNIX域套接字编程和socketpair 函数
一.UNIX Domain Socket IPC socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket.虽然网络soc ...
- 使用Geolocation校正GDAL不支持的数据
对于低分数据来说,常用的校正方式就是给定数据的经纬度查找表来进行校正.在GDAL中,这种校正方式叫Geolocation array.常用的数据有国外的MODIS数据,国内的如风云系列(FY)和海洋系 ...