一个比较大的项目这几天把它拆成了几个DLL,完工后编译运行发现找不到vcomp.dll(vcompd.dll),这个是OpenMP用的东西,直接放在能找到的地方不能用。
问题是同一个VS2005,在同一台机器上。打开没改造的项目就都没问题。项目设置都没变,拆分了几个DLL后怎么就找不到了呢?
哪位大侠帮我分析分析哪儿配置出问题了。
问题是同一个VS2005,在同一台机器上。打开没改造的项目就都没问题。项目设置都没变,拆分了几个DLL后怎么就找不到了呢?
哪位大侠帮我分析分析哪儿配置出问题了。
EXE一打开OpenMP就出这个错,怎么会这样呢?
报告下新的进展:在DLL项目里面打开OpenMP就不出问题,并且运行时多核都能开动起来,CPU可以用到100%。为什么在主EXE项目打开OpenMP就挂呢?
有没有这种可能vcomp.dll只能加载一个,禁止多次加载。可是在关闭DLL中的OpenMP后单独一个EXE中打开也是不可以。
有什么合理的解释呢?有谁遇到过这种情况?
如果加载不是,则看dll的依赖是否满足
现在看来问题出现在主进程EXE,DLL项目打开或者关闭OpenMP都没关系,只要EXE项目一打开OpenMP就挂。
我这个项目是从一个EXE的项目复制过来的,原来的项目没问题,裁掉一部分到其它DLL项目里面,裁剪出去的没问题,剩下的怎么就出问题了呢?困惑。现在是这样,同一个VS2005,打开原来的EXE项目编译运行就没问题,OpenMP一切正常。打开新的EXE项目,并且新项目还是拷贝原来的项目改造的,配置也没有改动,编译运行就找不到vcomp.dll了呢?兄弟们说的路径还有manifest试过了,没找到,谢谢各位。我要是新建一个项目使用OpenMP,也没有问题。要是项目小我宁愿新建一个项目把内容一点点复制过去,可是这个太大。还有就是究竟哪儿出问题,绕过去也不是办法是吧? 呵呵估计这样的问题大家也不好帮我,还是非常感谢,这贴先坚持两天,说不定谁遇到过这样的问题呢。
exe所在路径。
当前路径。
系统路径或Path(应该是无关的)
实在不行,你把你的exe和拆出来的dll都放到之前项目的执行目录下运行看看。