主题:为何ivf编译的dll,放在没有装vs2005的电脑中调用失败? cvf就可以。
sr12501
[专家分:120] 发布于 2011-05-22 21:45:00
为何ivf编译的dll,放在没有装vs2005的电脑中调用失败? cvf编译的dll就可以。
以前cvf编译的dll,用depends工具查看相关连其他的dll,一起打包后放在其他没有环境的电脑中就可以使用。
现在用ivf编译的dll,用depends工具查看相关连其他的dll,一起打包后放在其他没有环境的电脑中就调用失败了。
回复列表 (共7个回复)
沙发
sr12501 [专家分:120] 发布于 2011-05-22 22:23:00
刚试了一下,结论是:
ivf编译的dll,必须是release出来的dll才可以在没有环境的电脑中调用,需要同时附上libifcoremd.dll,libmmd.dll这两个dll,如果使用了openmp,还需要libiomp5md.dll这个库。
cvf编译的dll,附上DFORRT.DLL就可以在没有环境的电脑中调用。debug和release的都可以。
奇怪的是,ivf中debug的dll,附上libifcoremdd.dll,libmmdd.dll这两个dll后还是不能被没有环境的电脑调用,但是可以被有环境的电脑调用。不知为何。
环境是指电脑中装了vs ivf。
板凳
dongyuanxun [专家分:7180] 发布于 2011-05-22 22:50:00
那得看你编译时到底是
/MT 还是 /MD 编译的
3 楼
sr12501 [专家分:120] 发布于 2011-05-22 22:56:00
这个选项在哪里设置呢?
4 楼
sr12501 [专家分:120] 发布于 2011-05-22 23:08:00
我在ivf的dll工程的属性里,fortran,code generation,里没有runtimelibrary这一项啊。
5 楼
cgl_lgs [专家分:21040] 发布于 2011-05-23 08:19:00
仔细检查所有界面显示出来的选项,再看看IVF的命令行。
最后,如果不是必要,最好不要用manifest。
6 楼
sr12501 [专家分:120] 发布于 2011-05-23 14:51:00
能否专门开个帖子说明下ivf编译时候应该使用什么设置,能产生多大性能提升效果?
以前都是用默认设置的。
7 楼
yeg001 [专家分:14390] 发布于 2011-05-23 15:04:00
性能提升跟代码相关的. 不是开得越多优化越好.
我来回复