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相关推荐

  1. linux 编译 suitesparse,Ubuntu下编译SuiteSparse-4.4.1和METIS-4.0.3

    ubuntu下编译caffe Ubuntu下编译caffe 纯粹是个人编译的记录.不用CUDA(笔记本是amd卡,万恶的nvidia):不手动编译依赖包(apt-get是用来干啥的?用来直接装二进制包 ...

  2. Ubuntu 下编译ffmpeg和x264解编码器(翻译的一篇文章:)

    拿出自己一篇早期接触Ubuntu时翻译的文章,对逝去的SEO-DIC.COM.CN这个网站默哀. Ubuntu 下编译ffmpeg和x264解编码器 今年初由于个人的一些原因和其它因素:希奥开源(ht ...

  3. Ubuntu下编译ffmpeg+openh264+x264

    [笔记] Ubuntu下编译ffmpeg+openh264+x264 原文:https://www.cnblogs.com/journeyonmyway/p/4648820.html - ffmpeg ...

  4. [C++]Linux之Ubuntu下编译C程序出现错误:“ stray ‘\302‘或者‘\240‘ in program”的解决方案

    [C++]Linux之Ubuntu下编译C程序出现错误:" stray '\302'或者'\240' in program"的解决方案 参考文章: (1)[C++]Linux之Ub ...

  5. Ubuntu下编译VeraCrypt

    Ubuntu下编译VeraCrypt 1.安装yasm tar zxvf yasm-1.3.0.tar.gzcd yasm-1.3.0/./configure --prefix=/usr/local/ ...

  6. 从零开始,手把手教你如何在Ubuntu下编译VLC-Android源码

    前言 公司项目中使用的libvlcjni.so库文件,有点老,对Android 6.0+系统兼容性太差了,当程序运行在Android6.0+系统上时,回弹出警告框,提示libvlcjni.so:tex ...

  7. Ubuntu下编译qt程序libQtWebEngineCore报错

    最近在Ubuntu下编译qt程序时, 报如下错误 libQt5WebEngineCore.so: .dynsym local symbol at index 3 (>= sh_info of 3 ...

  8. 在Ubuntu下编译VLC并实现播放视频

    在Ubuntu下编译VLC并实现播放视频 一.下载VLC源码 二.安装VLC依赖的库 三.VLC编译与安装 1.编译与安装 2.库文件 3.头文件 四.调用VLC实现播放视频 1.添加头文件.库路径 ...

  9. 在Ubuntu下编译安装atom编辑器

    2019独角兽企业重金招聘Python工程师标准>>> 今天一大早就在开源中国首页看到了atom编辑器可以下载使用的消息,打开一看只提供Mac版的安装包.于是去Github上看了看, ...

最新文章

  1. 2022-2028年中国集装箱涂料行业市场研究及前瞻分析报告
  2. 数据结构和算法,到底有多重要?
  3. 怎么用python自制计算公式_自制计算经纬度位移 python 程序
  4. 9.2 协同过滤-机器学习笔记-斯坦福吴恩达教授
  5. 基于NHibernate的UnitOfWork+Repository模式(AutoFac)–Part2
  6. HihoCoder - 1829 Tomb Raider(暴力)
  7. windowsthinpc虚拟内存_windows thin pc如何开启windows功能
  8. leetcode-125 Valid Palindrome
  9. 详解JS中的事件机制(带实例)
  10. 一定能成功的Android NDK环境配置教程
  11. 易筋SpringBoot 2.1 | 第三十五篇:实战Aparche Maven 的核心概念与理论 Maven仓库管理 从入门到精通
  12. 计算机网络王道考研复习课自做笔记 ppt
  13. 标准正态分布怎么算_如何使用标准正态分布表?
  14. Ae:时间轴面板(图层控制区)
  15. Message Queue
  16. 解决GREENPLUM某些版本gprecoverseg –r失败后镜像双坏,系统无法启动的问题
  17. ffmpeg入门教程之YUV编码成h264 API详解
  18. 输入一个四位数将其加密后输出c语言,输入一个四位数,将其加密后输出.方法是将该数每一位的数字加9,然后除以10取余作为该位上的新数字,最后将千位上的数字和十...
  19. PyCharm选择性忽略PEP8代码风格警告信息
  20. 4月13日,每天30秒,昨夜今晨一览无余/两款iPhone 15 Pro将取消固态按键设计/法国正在考虑对苹果采取反垄断行动

热门文章

  1. python 非线性规划_支持向量机:Stata 和 Python 实现
  2. Git:clone时报错403
  3. linux内核维护者,Linux 内核维护者封杀明尼苏达大学(转载) - 优秀的Free OS(Linux)版 - 北大未名BBS...
  4. java 小数 乘法_javascript(js)的小数点乘法除法-Java架构师必看
  5. Java springboot访问templates的html和静态资源
  6. 在计算机中 ascii码是几位二进制编码,ASCII码采用多少位二进制编码
  7. Django 模板层
  8. 015-请问如果想进行bug的测评,怎么去评测bug?
  9. python大佬养成计划--协程实现TCP连接
  10. parceljs 中文文档24小时诞生记