24小时热门版块排行榜    

查看: 2848  |  回复: 14
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

register

金虫 (小有名气)

[交流] 请C语言高手出手:在windows环境下运行SLEUTH

最近下载了一个城市扩展模型(Urban Growth Model)SLEUTH, 是一个在Unix操作系统下的C应用程序,从网上下载后,它必须用GNU C 编译器才能正常运行(下载地址:http://www.ncgia.ucsb.edu/projects/gig/v2/Dnload/download.htm)。

我对C语言知之甚少,想请各位C语言高手出手相救:能不能帮忙把这个C应用程序编译转换成Windows下带窗口界面的可执行文件,这样只需输入不同参数,即可尝试预测城市增长了。

另外,我在SLEUTH的官方论坛上(http://bbs.geog.ucsb.edu),曾经看到有人在讨论用Cygwin在Windows环境下运行SLEUTH,但似乎没有成功,不知道这信息是否有用?

先谢谢各位啦:-)

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

register

金虫 (小有名气)

继续请教:

因为之前一直采用在线安装的方式老是不成功,所以就改成到ftp下载了cygwin的所有文件(约有3G),然后选择“从本地目录安装”,按照lkill的提示,选中所有的gcc打头的文件(就是点开“SKIP”,在方框里打叉,其余的部分都是采用的缺省安装),安装完以后,先修改cygwin.bat文件(用的是Ultraedit,并找到cygwin1.dll,它在c:\cygwin\bin目录下),并把SLEUTH3.0beta_p01_linux目录改名成s, 将s目录拷贝到c:\cygwin\bin目录下,运行桌面的cymwin图标,显示:

ws@hao
$

我敲入:

cd c:\cygwin\bin\s

屏幕显示:
ws@hao /cygwindrive/c/cygwin/bin/s
$

我再敲入:
grow

屏幕显示:
bash: grow: command not found

这是怎么回事呢?
9楼2006-06-13 00:30:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

iop1


register(金币+1):谢谢iop1指点,能否请iop1帮忙看看能改成windows下的应用软件工作量大约有多大,50个金币不知道够不够:-)
有Windows下的xwindows的,是商业软件。可试试。
改成windows下的应用软件也可以,工作量看软件的大小了。
2楼2006-06-11 20:15:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

iop1


register(金币+1):好的,总之,还是要谢谢你:-)
引用回帖:
能否请iop1帮忙看看能改成windows下的应用软件工作量大约有多大

还是请其他人看看吧。
3楼2006-06-11 22:38:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

killl

荣誉版主 (职业作家)

灌水

优秀版主

论坛上的确有人提到,可以在windows下使用,具体可以查看这个帖子:
http://bbs.geog.ucsb.edu/ubb/Forum17/HTML/000085.html
更多资料:
http://bbs.geog.ucsb.edu/cgi-bin/forumdisplay.cgi?

action=topics&number=17&forum=SLEUTH+Land+Cover+Modeling&DaysPrune=1000&startpoint=0

具体安装步骤:
1.http://www.cygwin.com
从这里下载cygwin的安装文件,我试了,关键是有一步,选择需要下载的package时,必须选中grab all the gcc packages,就是所有带有gcc

的点击最前面的文件名,后面的bin就被选中了,这样才可以。gcc是个编译器,如果你想对源代码修改就可以利用这个工具进行编译


具体的cygwin安装请看:

http://www.cygwin.com/cygwin-ug-net/setup-net.html


2.根据官方反映,SLEUTH已经做了修改,可以支持cygwin,如果你下载SLEUTH之后,在window下面直接运行,就会提示
---------------------------
grow.exe - 无法找到组件
---------------------------
没有找到 cygwin1.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。
---------------------------
确定   
---------------------------

这说明可以在windows下运行,如果是纯粹的linux版本,根本无法运行。官方对程序做了修改。使得借助cygwin就可以在windows下运行

3.安装cygwin后需要做一些调整

在cygiwn的安装目录里面找到cygwin.bat文件,并找到cygwin1.dll文件
修改cygwin.bat文件,增加下面2行

PATH = ${PATH};.
LD_LIBRARY_PATH = c:\cygwin\bin

如果你的路径不是默认的,请自行修改

4.如果还是无法运行,一定考虑一下,在第一步里面是不是选择了the GNU C compiler这个选项,必须下载。

5.我自己试着安装了,容易出现的问题:

'LD_LIBRARY_PATH' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

这个说明你的gcc编译器没有下载,无需全部重新安装,只要再运行程序,然后选择这个package下载就可以了,注意,这个是devel目录下的

如果看不见,在select package窗口,点击上面右面的view,出现full时就可以看到了,也可以选category,这样找到devel,然后再找gcc
如果还是不行,直接看6

6.最终心得,运行桌面上的Cygwin,当然你必须修改了bat文件。屏幕提示如下:
bash-3.1$
这个东西相当于dos下面的提示符,比如c:\之类的东西,你下面要做的就是运行程序了。
把SLEUTH3.0beta_p01_linux目录放到c:\cygwin\bin目录下面,改成短一点的目录名,比如s

在dos窗口里面,或者叫做cygwin里面的bash-3.1$提示符下输入命令:
cd s 回车
然后输入grow,就是SLEUTH3.0beta_p01_linux目录下面的grow文件,如果还是提示没有找到cygwin1.dll,就是上面文件没有配置好,告诉你

一个解决方法,就是把c:\cygwin\bin复制到SLEUTH3.0beta_p01_linux目录下面,或者windows的目录下面就可以了,看我的命令提示:

bash-3.1$ cd s
bash-3.1$ grow
Usage:
grow
Allowable modes are:
  calibrate
  restart
  test
  predict
bash-3.1$


知道用法了吧,至于grow的命令参数,还是你自己研究一下吧,我对于这个软件不懂,你可以到官方网站或者仔细阅读SLEUTH3.0beta_p01_linux_readme.txt文件。

至此sleuth完全在windows里面模拟运行成功。

希望楼主能体会到成功的喜悦,花了我2个小时呢。
灌水
4楼2006-06-12 10:02:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见