CGcode步骤

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 to sin whetstone.c:(.text+0x585): undefined reference to cos 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 不能直接幅值,要保持一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值