| 查看: 2841 | 回复: 14 | |||
| 当前主题已经存档。 | |||
[交流]
请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,但似乎没有成功,不知道这信息是否有用? 先谢谢各位啦:-) |
» 猜你喜欢
存款400万可以在学校里躺平吗
已经有15人回复
拟解决的关键科学问题还要不要写
已经有6人回复
Materials Today Chemistry审稿周期
已经有6人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
基金申报
已经有6人回复
推荐一本书
已经有13人回复
国自然申请面上模板最新2026版出了吗?
已经有17人回复
纳米粒子粒径的测量
已经有8人回复
疑惑?
已经有5人回复
计算机、0854电子信息(085401-058412)调剂
已经有5人回复
killl
荣誉版主 (职业作家)
灌水
- 应助: 0 (幼儿园)
- 贵宾: 11.38
- 金币: 12795.3
- 红花: 2
- 帖子: 4117
- 在线: 314.1小时
- 虫号: 228291
- 注册: 2006-03-24
- 专业: 语言学其他学科
|
抱歉,以为我说得比较明白,所以没有作动画,早知道做个动画了,简单明白。等我下午吧。 你已经很成功了。 仔细阅读我的回帖,你会发现,你的路径似乎跟我得不太一样,可能是版本的问题。 关键的一点,你使用cd命令出错了。 这个是模拟的linux,所以不能使用cd c:\cygwin\bin\s 你本来就在c:\cygwin\bin目录下面了‘ 所以你需要cd s 然后再输入grow试试 你出现的提示是command not found就说明了这一点 这个提示类似于dos里面的:bad comand or file name就是说没有找到这个命令。 根本问题在于你的路径不对。 你可以使用这两个命令dirs或者PWD,仔细看着两个单词,不是dir因为是模拟linux ==================== 如果问题还没有解决,希望你看看我回帖中的解决方法 开始菜单=》运行=〉cmd 或者command(win98,winme) 然后cd c:\cygwin\bin\s 然后输入grow试试,只要不是bad command or file name就说明成功了,应该是下面的提示 Usage: grow Allowable modes are: calibrate restart test predict bash-3.1$ 然后,你按照提示,输入了grow test scenario.demo200_test,结果提示如下: grow test scenario.demo200_test PE: 0 line: 1717 Func: scen_init Module: scenario_obj.c Unable to open file: scenario.demo200_test 看来时找不到scenario.demo200_test文件,原来在scenarios目录下面,先cd到这个目录,然后再试试 输入命令:cd scenarios 然后接着输入:../grow test scenario.demo200_test,注意这个路径,需要在grow前面加入..\,因为这个文件在上一个目录里面。 应该可以成功了,如果不成功,我下午给你作动画吧 |

10楼2006-06-13 01:58:43
|
继续请教: 因为之前一直采用在线安装的方式老是不成功,所以就改成到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
2楼2006-06-11 20:15:43
3楼2006-06-11 22:38:50
killl
荣誉版主 (职业作家)
灌水
- 应助: 0 (幼儿园)
- 贵宾: 11.38
- 金币: 12795.3
- 红花: 2
- 帖子: 4117
- 在线: 314.1小时
- 虫号: 228291
- 注册: 2006-03-24
- 专业: 语言学其他学科
|
论坛上的确有人提到,可以在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
killl
荣誉版主 (职业作家)
灌水
- 应助: 0 (幼儿园)
- 贵宾: 11.38
- 金币: 12795.3
- 红花: 2
- 帖子: 4117
- 在线: 314.1小时
- 虫号: 228291
- 注册: 2006-03-24
- 专业: 语言学其他学科
★ ★
wsshihan(金币+2):感谢热情参与!以后常来~
wsshihan(金币+2):感谢热情参与!以后常来~
|
本着对人负责的态度,我又试验了一下,终于完全成功了。 看看我的命令行输出: 首先按照提示,我输入了grow test scenario.demo200_test,结果提示如下: bash-3.1$ grow test scenario.demo200_test PE: 0 line: 1717 Func: scen_init Module: scenario_obj.c Unable to open file: scenario.demo200_test 看来时找不到scenario.demo200_test文件,那么我看看,原来在scenarios目录下面,我知道了,先cd到这个目录,然后再试试 输入命令:cd scenarios bash-3.1$ cd scenarios 然后接着输入:../grow test scenario.demo200_test,注意这个路径,需要在grow前面加入..\,因为这个文件在上一个目录里面。 结果竟然成功了,输入如下: bash-3.1$ ../grow test scenario.demo200_test *************************************************************************** *************************************************************************** ** ** ** SLEUTH ** ** (URBAN GROWTH MODEL) ** ** Beta Version 3.0 ** ** Release Date: December4, 2000 ** ** ** ** ** ** Notice: This is a beta version. It has been formally released ** ** by the U.S. Environmental Protection Agency (EPA) and should ** ** not be construed to represent Agency policy. This model is being ** ** circulated for comments on its technical merit and potential for ** ** policy implications. ** ** ** ** The U.S. Environmental Protection Agency through its Office ** ** of Research and Development Interagency Agreement #DW14938148-01-2 ** ** with the United States Geological Survey partially funded and ** ** collaborated in the model described here. Implementation and ** ** redesign of the model code was conducted under contract #68W70055 ** ** to Lockheed Martin Technical Services. The model has not been ** ** subjected to Agency review . Mention of trade names or ** ** commercial products does not constitute an endorsement or ** ** recommendation for use. ** ** ** ** Contributors: ** ** ** ** Ronald W. Matheny ** ** U.S. Environmental Protection Agency ** ** Landscape Characterization Branch MD-56 ** ** Research Triangle Park, NC 27771 ** ** (Project Officer, coordination, parallelization, technical ** ** assistance, review and testing) ** ** ** ** William Acevedo ** ** United States Geological Survey ** ** Ames Research Center (242-4) ** ** Moffettfield, CA 94035 ** ** (Project officer and coordination) ** ** ** ** Keith Clarke ** ** Department of Geography ** ** ** ** University of California, Santa Barbara ** ** Santa Barbara, CA 93117 ** ** (Originator, theoretical constructs, testing) ** ** ** ** Jeannette Candau ** ** United States Geological Survey & ** ** Department of Geography ** ** University of California, Santa Barbara ** ** Santa Barbara, CA 93117 ** ** (Theory, model development, redesign, review and testing) ** ** ** ** David Hester ** ** United States Geological Survey ** ** Rocky Mountain Mapping Center ** ** P.O. Box 25046, MS-516 ** ** Denver, CO 80225-0046 ** ** (Review and testing) ** ** ** ** ** ** Mark Feller ** ** United States Geological Survey ** ** ** ** Rocky Mountain Mapping Center ** ** P.O. Box 25046, MS-516 ** ** Denver, CO 80225-0046 ** ** (Review and testing) ** ** ** ** George Xian ** ** Raytheon Corporation (contract with USGS #8701) ** ** EROS Data Center ** ** Sioux Falls, SD 57198 ** ** (Review and testing) ** ** ** ** Tommy E. Cathey ** ** Lockheed Martin Technical Services ** ** National Environmental Supercomputing Center ** ** United States Environmental Protection Agency ** ** Research Triangle Park, NC 27711 ** ** (Implementation, model redesign, parallelization, and coding) ** ** ** *************************************************************************** *************************************************************************** growth.c 122 ****************************************** growth.c 130 Monte Carlo = 1 of 4 growth.c 133 proc_GetCurrentYear=1930 growth.c 135 proc_GetStopYear=1990 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 growth.c 122 ****************************************** growth.c 130 Monte Carlo = 2 of 4 growth.c 133 proc_GetCurrentYear=1930 growth.c 135 proc_GetStopYear=1990 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 growth.c 122 ****************************************** growth.c 130 Monte Carlo = 3 of 4 growth.c 133 proc_GetCurrentYear=1930 growth.c 135 proc_GetStopYear=1990 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 growth.c 122 ****************************************** growth.c 130 Monte Carlo = 4 of 4 growth.c 133 proc_GetCurrentYear=1930 growth.c 135 proc_GetStopYear=1990 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 这个时候去C:\cygwin\bin\s\Output\demo200_test目录看看输出的数据吧,我又看不懂了,估计是你需要的吧 |

5楼2006-06-12 10:15:29
killl
荣誉版主 (职业作家)
灌水
- 应助: 0 (幼儿园)
- 贵宾: 11.38
- 金币: 12795.3
- 红花: 2
- 帖子: 4117
- 在线: 314.1小时
- 虫号: 228291
- 注册: 2006-03-24
- 专业: 语言学其他学科
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
register(金币+45):非常谢谢Kil出手相助l,不好意思,今天下午看了kill的帖子之后就一直想自己试着完成一遍,可是老是不成功,我已经把我遇到的问题写在下面的回复中了,能不能请kill或者再帮我看看我的问题在哪儿,或者能否帮忙帮到底,作个动画演示,我知道这花了kill的不少宝贵时间,如果哪位能帮我把全过程制成动画演示,我愿意再送上20金币,再次感谢kill
register(金币+45):非常谢谢Kil出手相助l,不好意思,今天下午看了kill的帖子之后就一直想自己试着完成一遍,可是老是不成功,我已经把我遇到的问题写在下面的回复中了,能不能请kill或者再帮我看看我的问题在哪儿,或者能否帮忙帮到底,作个动画演示,我知道这花了kill的不少宝贵时间,如果哪位能帮我把全过程制成动画演示,我愿意再送上20金币,再次感谢kill
|
又试了试,windows里面的dos就可以运行的。 开始菜单=》运行=》输入cmd,然后切换到安装目录就可以了,注意把dll复制到系统目录 |

6楼2006-06-12 10:48:39
feng_zhuo1
金虫 (正式写手)
- 应助: 1 (幼儿园)
- 金币: 738.3
- 帖子: 326
- 在线: 5.1小时
- 虫号: 201705
- 注册: 2006-02-28
- 性别: GG
- 专业: 消化系统肿瘤
7楼2006-06-12 14:11:09
8楼2006-06-12 18:12:28











回复此楼
