fatal error C1189: #error : "No Target Architecture"的解决方案

    将OpenCV由2.4.2升到2.4.6后,问题多多。

   首先,OpenCV/build/common 目录没有了,增加了对Java的支持。但是VS的相应设置也要改变。

   出错:fatal error C1189: #error : "No Target Architecture"

    

    

C:\Program Files (x86)\Windows Kits\8.0\Include\um\winnt.h(146): fatal error C1189: #error :  "No Target Architecture"
  

     打开winnt.h可以看到:

    

    
#if defined(_WIN64)
#if defined(_AMD64_)
#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )
#elif defined(_IA64_)
#define PROBE_ALIGNMENT( _s ) (TYPE_ALIGNMENT( _s ) > TYPE_ALIGNMENT( DWORD ) ? \
                              TYPE_ALIGNMENT( _s ) : TYPE_ALIGNMENT( DWORD ))
#else
#error "No Target Architecture"
#endif

    这是由于源程序一直说 MAX_PATH 未定义,这个是在 WinDef.h 中定义的,但是当我 include <WinDef.h> 之后,再次运行却报上面的错误了。
   折腾了半天,细想,就是说没有定义"_AMD64_"就报错了,那么我们定义不久OK了,于是得到解决方案如下:
   视图—属性管理器—Debug|x64—Microsoft.Cpp.x64.user——C/C++——预处理器——预处理器定义,添加“_AMD64_”即可!

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值