1、代码放到linux
2、make
make: Nothing to be done for `all’ 解决方法:若想重新编译,可以先删除以前编译产生的目标文件:make clean 然后再 make
3、编译成功后,我要把得到的正演和反演软件
输入./synrflzw 运行编译好的c程序
4、下载SAC源码https://download.youkuaiyun.com/download/qq_24931635/8319559
https://www.jianshu.com/p/1103dcc2952f
5、安装SAC
https://www.jianshu.com/p/1103dcc2952f
6、运行画图脚本程序还安装sh改进版csh
sudo apt install csh
sudo apt install tcsh
7、然后画图前要安装 gmtset、awk
http://gmt.soest.hawaii.edu/?id=Installing sudo apt-get install gmt gmt-dcw gmt-gshhg
https://www.runoob.com/linux/linux-comm-awk.html sudo apt-get install gawk
画图命令
bash plotderf.sh log.ps best.essmod log.essmod 0 essmod.syn
画图时困扰了我半天的bug,
https://blog.youkuaiyun.com/m0_37683327/article/details/96270657
然后我exam1里的代码是我改过的可以用
反演sh里有指导调用画图sh
2015年的画图代码有问题,我修改了;
画图里,以前的psxy和minmax等gmt的操作要修改为:gmt psxy、gmt minmax;
psxy设置画图属性其中-W2/0/0/0要改为-W0.2p,0/0/0
2015代码画图还没有搞定,先放一段
8、jade编译
-
fatal error: gsl/gsl_rng.h: No such file or directory
装下面这个就解决了。。。
sudo apt install libgsl-dev -
今天在编译程序时碰到该问题:
whetstone.c:(.text+0x56c): undefined reference tosin
whetstone.c:(.text+0x585): undefined reference tocos
whetstone.c:(.text+0x5cf): undefined reference to `atan’
检查头文件math.h已经包含,原来虽然程序中已经包含math.h,但在链接时要链接到数学库,加上-lm编译选项即可,如下:
将 gcc whetstone.c -o whetstone 改为 gcc whetstone.c -lm -o whetstone即可。
使用 math.h 中声明的库函数还有一点特殊之处,gcc 命令行必须加-lm 选项,因为数学函
数位于 libm.so 库文件中(这些库文件通常位于/lib 目录下),-lm 选项告诉编译器,
我们程序中用到的数学函数要到这个库文件里找。本书用到的大部分库函数(例如
printf)位于 libc.so 库文件中,使用 libc.so 中的库函数在编译时不需要加-lc 选项,
当然加了也不算错,因为这个选项是 gcc 的默认选项。
(以上选自《linux C 编程》)
GSL 是可以科学计算库。GSL(GNU Scientific Library)是一个C写成的用于科学计算的库,下面是一些相关介绍。
编译时要加上-lm -lgsl -lgslcblas 如:
runjade : $(objects)
cc -o edit $(objects) -lm -lgsl -lgslcblas
-lm是用来链接math.h
-lgsl是用来链接gsl.h
-lgslcblas是用来链接gsl.h【之前的编译都没有问题,在最后的链接阶段出现错误,根据提示可知,libgsl库链接相关文件的时候出现问题。libgsl库依赖clbas库中的相关文件。所以在链接gls后还需加上对gslcblas的链接,问题解决】
jade编译好后直接 ./runjade 运行
8、jade编译
我JADERF文件没有命名为JADERF.c 导致编译的时候一直出现 make: *** No rule to make target ‘JADERF.o’, needed by ‘derfmod’. Stop
%ld 是long
%d 和 %f不能混着用会出问题,另外int * nfe;在用这个数的时候要用*nfe。
double 和 float 不能直接幅值,要保持一致