Fortran Coder

查看: 22212|回复: 15
打印 上一主题 下一主题

[文件读写] intel fortran读取csv文件出现的问题

[复制链接]

22

帖子

4

主题

0

精华

熟手

F 币
319 元
贡献
154 点
跳转到指定楼层
楼主
发表于 2015-1-27 20:14:25 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
求助!
我编写csv文件的一段代码,能够正常调试、编译、生成。
调试时是正常的。
但生成的exe文件却不能使用。
出现的问题是:
点击可执行文件,提示“无法启动此程序,因为计算机中丢失libifcoremd.dll”,
我在网上找了一下解决方法,后来用百度电脑专家修复了缺失的dll;
但是,修复后,继续出现问题,提示:“应用程序无法正常启动(0xc00007b)。请单击“确定”关系应用程序”,
网上的方法主要是说DirectX出现问题,我下载了DirectX修复工具,检查发现DirectX没有问题。
请问各位大神,有没有碰到这样的问题。


PS:我执行其他读取txt的fortran编译的exe是没有问题的。
另附代码如下:
[Fortran] 纯文本查看 复制代码
PROGRAM MAIN
    IMPLICIT NONE
    INTEGER::STATUS    REAL::RANGENORTH,RANGEWEST,RANGESOUTH,RANGEEAST
    REAL::LAT,LON,VALUE
    OPEN(UNIT=1201501,FILE="gsmap_mvk_v52221_20070101_daily_p12Z-11Z_01_AsiaEE.csv")
    OPEN(UNIT=1201502,FILE="RANGE.TXT")
    OPEN(UNIT=2201501,FILE="20070101.TXT")
    READ(1201501,*)
    READ(1201502,*)RANGENORTH,RANGEWEST,RANGESOUTH,RANGEEAST
    DO
        READ(1201501,*,IOSTAT=STATUS)LAT,LON,VALUE
        IF(STATUS/=0)EXIT
        IF(LAT<=RANGENORTH.AND.LAT>=RANGESOUTH.AND.LON>=RANGEWEST.AND.LON<=RANGEEAST)THEN
            WRITE(2201501,'(3F10.2)')LON,LAT,VALUE
        END IF
    END DO
END PROGRAM MAIN


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

22

帖子

4

主题

0

精华

熟手

F 币
319 元
贡献
154 点
16#
 楼主| 发表于 2015-1-28 14:00:29 | 只看该作者
谢谢两位
早上偷懒,没有卸载旧的,直接重新安装

刚才把旧的版本统统卸掉,再重装IVF

问题完美解决

再次感谢两位

490

帖子

4

主题

0

精华

大宗师

F 币
3298 元
贡献
1948 点

水王勋章元老勋章热心勋章

15#
发表于 2015-1-28 13:29:31 | 只看该作者
龙行天下 发表于 2015-1-28 11:39
嘿嘿,不可能编译一个程序就把它们拷贝一次吧
感觉还是配置问题了
dllexp很不错啊

非要ivf不可的话,参考ivf的32和64的dos界面bat,看看里面的环境变量如何定义,或者干脆在dos下面编译,dll的依赖关系也就预先处理好了

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

14#
发表于 2015-1-28 13:02:26 | 只看该作者
这些 DLL 的关系应该由编译器厂家来协调,所以最好的办法其实是,卸载 ivf,重新安装一次。

22

帖子

4

主题

0

精华

熟手

F 币
319 元
贡献
154 点
13#
 楼主| 发表于 2015-1-28 11:39:48 | 只看该作者
pasuka 发表于 2015-1-28 10:59
为啥要拷贝到系统目录下,直接和exe搁一个目录不就结了。。。
查看dll的依赖关系,下载dllexp ...

嘿嘿,不可能编译一个程序就把它们拷贝一次吧
感觉还是配置问题了
dllexp很不错啊
谢啦

490

帖子

4

主题

0

精华

大宗师

F 币
3298 元
贡献
1948 点

水王勋章元老勋章热心勋章

12#
发表于 2015-1-28 10:59:44 | 只看该作者
龙行天下 发表于 2015-1-28 10:42
这会儿又瞎捣鼓了一下

重新安装IVF后

为啥要拷贝到系统目录下,直接和exe搁一个目录不就结了。。。
查看dll的依赖关系,下载dllexp

22

帖子

4

主题

0

精华

熟手

F 币
319 元
贡献
154 点
11#
 楼主| 发表于 2015-1-28 10:42:52 | 只看该作者
这会儿又瞎捣鼓了一下

重新安装IVF后

打开C:\Program Files (x86)\Intel\Composer XE 2013 SP1\redist\ia32\compiler

先把libifcoremd.dll拷贝的system32

exe还是提醒libifcoremd.dll缺失

又把libifcoremd.dll拷贝的system

这次不提醒libifcoremd.dll缺失,变成提醒libmmd.dll缺失

同样,把libmmd.dll拷贝的system中

这样的话,release\win32 配置下的exe是可以运行了

紧接着,我试了一下,release\x64情况下的exe

还是有问题,它提醒的问题如下:




然后,我打开C:\Program Files (x86)\Intel\Composer XE 2013 SP1\redist\intel64\compiler
我把libifcoremd.dll拷贝的sysWOW64,


发现问题依旧。。


再然后,还是把64下面的ibifcoremd.dll和libmmd.dll拷贝的system


这样的话,x64配置下的exe可以正常运行了,相应的,win32配置下的不能正常运行。。


请问两位,win32与x64的只能二选其一了吗?

22

帖子

4

主题

0

精华

熟手

F 币
319 元
贡献
154 点
10#
 楼主| 发表于 2015-1-28 10:13:38 | 只看该作者
pasuka 发表于 2015-1-28 09:41
lz的OS是64bit,那么ivf编译的程序是64还是32?
这个明确后,再去ivf安装目录把对应的dll拷贝出来 ...

是的,我的系统是64bit,编译时选择的是release + win32
我刚才把syswow64、system中的libifcoremd.dll都删了,重装ivf后,
不论选择win32还是x64,生成的可执行文件,都提示如下




22

帖子

4

主题

0

精华

熟手

F 币
319 元
贡献
154 点
9#
 楼主| 发表于 2015-1-28 10:10:02 | 只看该作者
fcode 发表于 2015-1-28 09:09
在我电脑上也能完美运行。得到 20070101.txt

丢失libifcoremd.dll 的话,可能是某些文件夹应该添加在 Path ...

我将搜索到的libifcoremd.dll,能删的都删掉了
然后重装IVF
再运行,回到最初的问题

3.jpg (51.11 KB, 下载次数: 448)

3.jpg

490

帖子

4

主题

0

精华

大宗师

F 币
3298 元
贡献
1948 点

水王勋章元老勋章热心勋章

8#
发表于 2015-1-28 09:41:40 | 只看该作者
龙行天下 发表于 2015-1-28 09:36
全盘搜索 libifcoremd.dl结果

lz的OS是64bit,那么ivf编译的程序是64还是32?
这个明确后,再去ivf安装目录把对应的dll拷贝出来
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-23 22:13

Powered by Tencent X3.4

© 2013-2024 Tencent

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