问个vs2005里使用OpenMP的问题

pipilu1984 2007-04-16 08:33:51
vs2003不支持OpenMP,最近我用vs2005编写OpenMP的程序时碰到了一些问题。
我安装的vs2005是profession版,OpenMP库应该是全的,编写了如下一个最简单的OpenMP程序:
#include <stdio.h>
void main(void)
{
#pragma omp parallel
{
printf("hello world\n");
}
}
我在项目属性中的C/C++菜单中的language选项中打开了/openmp选项,编译能顺利通过,可是运行时报错,总是提示:
“This application has failed to start because vcomp.dll was not found.Re-installing the application may fix this problem.”
然后我找到提示的vcomp.dll(位于C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.OPENMP\vcomp.dll),放到编译好的exe文件同目录下,可运行exe文件仍然报错,提示:
“The application failed to initialize properly(0xc0000142).”
我实在不知道是怎么回事了,大家能帮我看看是什么问题吗?非常感谢!
...全文
1553 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eidolon1982 2010-12-03
  • 打赏
  • 举报
回复
请楼上再说得详细点好吗 我的加了type='Win32' name='Microsoft.VC80.DebugOpenMP' version='8.0.50608.0' processorArchitecture='X86' publicKeyToken='1fc8b3b9a1e18e3b' language='*'这个后 在重新生成解决方案的时候出现

x264.obj : error LNK2019: 无法解析的外部符号 _x264_param_default,该符号在函数 _main 中被引用
2>x264.obj : error LNK2001: 无法解析的外部符号 _optind
2>x264.obj : error LNK2019: 无法解析的外部符号 _x264_param_parse,该符号在函数 _Parse 中被引用
2>x264.obj : error LNK2001: 无法解析的外部符号 _optarg
2>x264.obj : error LNK2019: 无法解析的外部符号 _getopt_long,该符号在函数 _Parse 中被引用
2>x264.obj : error LNK2019: 无法解析的外部符号 _x264_free,该符号在函数 _Encode 中被引用
2>x264.obj : error LNK2019: 无法解析的外部符号 _x264_encoder_close,该符号在函数 _Encode 中被引用
2>x264.obj : error LNK2019: 无法解析的外部符号 _x264_picture_clean,该符号在函数 _Encode 中被引用
2>x264.obj : error LNK2019: 无法解析的外部符号 _x264_mdate,该符号在函数 _Encode 中被引用
2>x264.obj : error LNK2019: 无法解析的外部符号 _x264_picture_alloc,该符号在函数 _Encode 中被引用
2>x264.obj : error LNK2019: 无法解析的外部符号 _x264_encoder_open,该符号在函数 _Encode 中被引用
2>x264.obj : error LNK2019: 无法解析的外部符号 _x264_nal_encode,该符号在函数 _Encode_frame 中被引用
2>x264.obj : error LNK2019: 无法解析的外部符号 _x264_malloc,该符号在函数 _Encode_frame 中被引用
2>x264.obj : error LNK2019: 无法解析的外部符号 _x264_encoder_encode,该符号在函数 _Encode_frame 中被引用
这些错误啊
memeng2003 2010-06-02
  • 打赏
  • 举报
回复
编译OpenMP要需要一个支持OpenMP的编译器和线程安全的运行时库。vs2005的配置属性C/C++语言里提供对OpenMP的支持。
编译时假如出现"没有找到vcompd.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题",
可能的原因是该项目有可能是从VC移植过来的,如果由VS创建,一般不会出现该问题,因为VS会解决在清单文件的调用dll问题。
解决方法如下:
StdAfx.h中加入 #pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.VC80.DebugOpenMP' version='8.0.50608.0' processorArchitecture='X86' publicKeyToken='1fc8b3b9a1e18e3b' language='*'\"")
或者在Linker -> Manifest File -> Additional Manifest Dependencies -> 中加入:
"type='Win32' name='Microsoft.VC80.DebugOpenMP' version='8.0.50608.0' processorArchitecture='X86' publicKeyToken='1fc8b3b9a1e18e3b' language='*'"
h1986zh 2010-06-01
  • 打赏
  • 举报
回复
没加头文件
miaoshasha 2009-10-08
  • 打赏
  • 举报
回复
vs 是不是很爱出问题呀?老是不能正常运行就没有什么。DLL,为什么?
intel_jeff 2009-01-07
  • 打赏
  • 举报
回复
我猜测是dll路径问题。建议LZ直接在命令行下运行,把dll放在与exe同一目录下,看看这样行否。
attop 2009-01-02
  • 打赏
  • 举报
回复
加上#include <omp.h>就可以了?
我试试
attop 2009-01-02
  • 打赏
  • 举报
回复
加上#include <omp.h>就可以了?
我试试
felechen 2008-12-30
  • 打赏
  • 举报
回复
加上#include <omp.h>就可以了
hxiaobin 2007-05-10
  • 打赏
  • 举报
回复
good topic!!!
rf1377 2007-05-02
  • 打赏
  • 举报
回复
加头文件#include"omp.h"
OpenHero 2007-04-28
  • 打赏
  • 举报
回复
mark
ethantung 2007-04-28
  • 打赏
  • 举报
回复
lz可以尝试一下
#include <omp.h>
及时没有使用函数调用,似乎这个也是必须的,我的问题就是这样解决的
ethantung 2007-04-28
  • 打赏
  • 举报
回复
我的问题也是这个,请问哪个才是真正的解决方法呢?
guostong 2007-04-26
  • 打赏
  • 举报
回复
打开项目属性,
configuration->
linker->
manifest file->
在 additional manifest dependencies 中添加
type='win32' name='Microsoft.VC80.DebugOpenMP' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b'

StarCraftPJF 2007-04-20
  • 打赏
  • 举报
回复
up
赖勇浩 2007-04-16
  • 打赏
  • 举报
回复
尝试安装redist包,就在redist目录下的一个exe文件。

568

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧