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

来源:互联网 发布:入驻淘宝外卖收费标准 编辑:程序博客网 时间:2024/06/06 02:27

    将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_”即可!

原创粉丝点击