zhanghouxing的个人博客分享 http://blog.sciencenet.cn/u/zhanghouxing

博文

GSFLOW模型的Codeblocks编译

已有 4934 次阅读 2018-10-1 16:12 |个人分类:水文|系统分类:科研笔记

 

GSFLOW提供makefile文件,可以在linux系统下编译成功,采用msys虚拟linux系统可成功通过编译(赵彦博帮忙完成)。

然而,我想在windows下编译,并且我想在windows下进行调试。

这里有两种途径,一种是对makefile进行解析,弄清GSFLOW各个模块直接的关联和依赖关系,然后进行顺序编译,然后这不能实现所以模块一起编译,且不同模块如果要改代码,则需要写调试函数,否则不能调试,因为mmf, modflow以及prms模块都编译出lib,然后实现模型耦合,生产gsflow.这个途径显然麻烦。

另一种途径,就是直接在codeblocks下编译linux代码。这里首先要找到虚拟linux系统,且能被codeblocks系统支持,我最后锁定为cygwin,因为正好codeblocks支持。

(1)首先下载cygwin并安装,安装make, gcc gfortran等。

(2) 在codeblock配置编译环境及编译器。需要注意的是,这里配置的编译器,是选择的mingw,而不是cygwin自带的,这是因为mingw与windows系统更兼容。

(3) 配置makefile文件,需要注意的是下面第二个图中,要删掉所以$target字符。

(4)然后执行编译,但是我们发现一个错误。错误是在建立文件然连接时候出现的,cygwin采用ln -s不能建立软链接,因此我把它改为硬连接。从而通过编译

(5) 以上就是cygwin codebocks编译的完成步骤,这里还要进行调试,首先要为cygwin下载调试器gdb.exe,然后建立cygwin调试器配置,如下图。

(6)下面这个问题搞了我很久,那就是cygwin不认识window路径,因此在编译的时候,老提示找不到编译文件。这时候,我在网上找了好久的办法,最好找到了,就是在windows下的路径添加cgydrive之后,cygwin才能识别,通过修改注册表可以实现,具体参考如下的内容:

http://forums.codeblocks.org/index.php/topic,13791.0.html

https://blog.csdn.net/u011589289/article/details/81944643

(7)这下我以为ok了,然后事实上,我又搞了好久,原因是makefile里配置的编译器参数不对,要进行调试,需要将参数改为 -g, 如果下OPTLEVLE = -g, 而编译 为- O

(8) 所有问题就搞定了。




https://blog.sciencenet.cn/blog-922140-1138246.html

上一篇:monthly water balance model code
下一篇:研究成果报道:Water and Irrigation; Studies from CAS
收藏 IP: 120.237.122.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-16 20:21

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部