Fortran Coder

查看: 473|回复: 11

[求助] 关于"无法解析的外部符号”系列问题

[复制链接]

12

帖子

3

主题

0

精华

入门

F 币
47 元
贡献
33 点
发表于 2021-3-17 18:32:15 | 显示全部楼层 |阅读模式
本帖最后由 望舒 于 2021-3-17 18:32 编辑

编译器:VS2013的intel fortran
源代码:据导师称是来自前苏联的STAB源代码(STAB是一款来自俄罗斯的分析有关超空泡航行体水下和入水运动软件)
问题:理论上运行这段源代码,可以得到一个EXE文件,打开之后可以进行GUI操作。导师给我的任务是,给STAB新加上某一功能。
我本来想先把源代码跑出来看看,运行出一个什么东西,然后再分析代码,再自己改动。但源代码根本跑不动,咨询导师后发现源代码本身存在
问题,逐一解决了语法上的问题(如字符长度不匹配等),但最后又不断报错"无法解析的外部符号“等情况。
本人已经咨询过自己导师,但他似乎本身也无法解决...

查询资料后得知,链接出错可能是由于没有添加库文件所导致的。
但是问题在于,导师给的文件包中找不到lib格式的文件,只有4个f90文件和一个.h文件及一个.rc文件。
我尝试用.h和.rc文件生成Lib文件并添加到fortran的工程中,也没有任何作用。
(FORTRAN是用WINapp建立的工程,但是用Console也会报相同错误)

请问:1.如何判断这一问题是否真的是缺失库文件造成的?
          2.如果不是缺失库文件造成的而是我的错误操作,请问正确如何正确操作才能使源代码跑起来?(形象的说就是这几个零件该怎么拼)

(本人编程小白,之前编过简单的console工程,没有写过这种可以类似于生成一个商用软件的代码)


如下图是报错内容
1.jpg 2.jpg



如下图是导师给的文件包
3.jpg

我的操作方法是把.f90和.fd文件拉入了fortran的winapp工程然后开始调试,最开始的报错类型大多是语法错误,如下图

4.png

但等我把这些错误都修正后就出现了第一张图报的54个错误。


注:1.已经请教过导师,但他似乎真解决不了。
      2.我也不知道为什么他把他解决不了的问题让我搞毕设...
     3.虽然没签保密协定,但我课题似乎还是又一定保密性,我可以发截图,但不能把所有代码发出来到论坛上。如果有大牛愿意帮我看看这些代码怎么弄,可以私下联系,我可以给予一定报酬。


回复

使用道具 举报

12

帖子

3

主题

0

精华

入门

F 币
47 元
贡献
33 点
 楼主| 发表于 2021-3-17 18:37:00 | 显示全部楼层
我也考虑过自己编而不用源代码,但是STAB是前苏联集众人之力搞出来的玩意儿,并非我一个人可以胜任的工作量。
现在就是导师发过来的东西就是跑不动,咱也不敢说,咱也不敢问。

605

帖子

1

主题

0

精华

大宗师

F 币
2989 元
贡献
1885 点
发表于 2021-3-17 19:26:18 | 显示全部楼层
FAQ之 常见错误分析
http://fcode.cn/guide-36-1.html,这里有怎么解决的解答。

605

帖子

1

主题

0

精华

大宗师

F 币
2989 元
贡献
1885 点
发表于 2021-3-17 19:29:48 | 显示全部楼层
你这个问题比较头疼,除非远程调试,或者给源码。

12

帖子

3

主题

0

精华

入门

F 币
47 元
贡献
33 点
 楼主| 发表于 2021-3-17 20:17:20 | 显示全部楼层
li913 发表于 2021-3-17 19:26
FAQ之 常见错误分析
http://fcode.cn/guide-36-1.html,这里有怎么解决的解答。

谢谢,我大概看了下应该是我需要的。我先认真学一下再来提问,再次感谢!

2

帖子

1

主题

0

精华

新人

F 币
19 元
贡献
9 点
发表于 2021-3-17 20:50:02 | 显示全部楼层
望舒 发表于 2021-3-17 20:17
谢谢,我大概看了下应该是我需要的。我先认真学一下再来提问,再次感谢! ...

我一模一样的错,麻烦朋友解决后在这回答一下,谢谢啦

878

帖子

0

主题

0

精华

宗师

F 币
1562 元
贡献
871 点

规矩勋章元老勋章新人勋章水王勋章

QQ
发表于 2021-3-17 21:33:26 | 显示全部楼层
你需要知道原先作者是用什么操作系统和编译器进行的开发。
尽可能选用和作者相同的平台进行。

通常带有GUI的程序,跨平台是没做好的。(尤其是古老的代码)

你可以试试用 QuickWin 工程类型。看里面有几个函数似乎是 quickwin 的

158

帖子

2

主题

0

精华

宗师

F 币
1214 元
贡献
637 点

规矩勋章

发表于 2021-3-17 22:07:42 | 显示全部楼层
用你的VS2013打开那个dsw文件看看

12

帖子

3

主题

0

精华

入门

F 币
47 元
贡献
33 点
 楼主| 发表于 2021-3-18 16:24:49 | 显示全部楼层
necrohan 发表于 2021-3-17 22:07
用你的VS2013打开那个dsw文件看看

C:\Users\LENOVO\Desktop\问题图\8
打开之说要升级 8.jpg

158

帖子

2

主题

0

精华

宗师

F 币
1214 元
贡献
637 点

规矩勋章

发表于 2021-3-18 22:13:27 | 显示全部楼层
望舒 发表于 2021-3-18 16:24
打开之说要升级

dsw是老的项目文件,保存一个备份,然后打开,里面应该有以前编译的文件列表、编译选项,可以参考
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2021-4-19 08:23

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表