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 之后,再次运行却报上面的错误了。
   折腾了半天,细想,就是说没有定义"_AMD64_"就报错了,那么我们定义不久OK了,于是得到解决方案如下:
   视图—属性管理器—Debug|x64—Microsoft.Cpp.x64.user——C/C++——预处理器——预处理器定义,添加“_AMD64_”即可!

你可能感兴趣的:(Windows,7)