在编译程序的时候发现报这个错误,在网上看到很多文章,说设置include路径,lib目录等等,都没有解决。最后调整了以下include文件的顺序,问题解决了。例如





从头文件a.h中截取的一段





typedef struct

{

    DWORD Data1;

    WORD Data2;

    WORD Data3;

    BYTE Data4[ 8 ];

} GUID;





 





然后在b.cpp文件里面引用





#include <a.h>





#include <Windows.h>





这样编译会报错





程序报错:error C2146: 语法错误 : 缺少“;”





其原因是在a.h文件中 DWORD未定义,在a.h文件中引用minwindef.h再编译就会报错 fatal error C1189: #error : "No Target Architecture"





#include <minwindef.h>





typedef struct

{

DWORD Data1;

WORD Data2;

WORD Data3;

BYTE Data4[ 8 ];

} GUID;





再引用windows.h





#include <windows.h>





#include <minwindef.h>





typedef struct

{

DWORD Data1;

WORD Data2;

WORD Data3;

BYTE Data4[ 8 ];

} GUID;





然后就可以正常编译了,其实不用这么复杂,直接在b.cpp文件中调整下引用文件的顺序就可以了,如下





#include <Windows.h>





#include <a.h>

fatal error C1189: #error : "No Target Architecture" 解决办法一的更多相关文章

  1. VS2003转VS2010 fatal error C1189: #error

    我自己的mfc的demo要转换编译环境出现以下编译错误: VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT ...

  2. fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>

    给对话框添加类, 报错 CalibrateMFCDlg.h(6) : error C2504: “CDialog”: 未定义基类 等多个错误 加上 #include "afxwin.h&qu ...

  3. 【转】fatal error C1189: #error : missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS

    转自:http://blog.csdn.net/friendan/article/details/46576699 fatal error C1189: #error :  missing -D__S ...

  4. fatal error C1189: #error : core.hpp header must be compiled as C++

    两次opencv工程需要设置为C++编译:找了一半天的解决方法. I am building a C application that uses OpenCV. when compiling, I g ...

  5. fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC

    出现如下错误: fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires ...

  6. fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC sha

    调试程序时出现以下问题:d:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(24): fatal e ...

  7. fatal error C1189: #error: "Oops: min() and/or max() are defined as preprocessor macros. Define NOMINMAX macro before including any system headers!"

    1.问题描述 vs2015 使用pg数据库的C++库文件4.0.1版本libpqxx.dll,包含头文件#include "pqxx\pqxx" 出现这个错误: fatal err ...

  8. error C2065: “CString”: 未声明的标识符 ;fatal error C1189: #error : afxstr.h can only be used in MFC proje

    转自VC错误:http://www.vcerror.com/?p=1388 问题描述: error C2065: "CString": 未声明的标识符 fatal error C1 ...

  9. vc/atlmfc/include/afx.h(24) : fatal error C1189: #error : Building MFC application with /MD[d] (CRT

    环境:win7,64位,vs2012 1> c:/program files/microsoft visual studio 8/vc/atlmfc/include/afx.h(24) : fa ...

随机推荐

  1. centos6编译安装php7

    https://www.cnblogs.com/wenwei-blog/p/6261637.html https://www.cnblogs.com/imzye/p/5109770.html cent ...

  2. 跨主机网络-overlay(18)

    docker overlay跨主机网络 .环境 docker版本 Docker version -ce, build fc4de44 3台主机 192.168.55.51 host1 192.168. ...

  3. Eclipse ALT+/ 代码没有提示功能

    第一种配置如下: 第二: 第三: 以上三种方式是关于eclipse代码提示

  4. 如何将当前平台升级到SonarQube7.9?[最新]

    整体思路 准备测试数据(实际环境可跳过此步骤) 数据库迁移(从版本7.9开始,SonarQube将不再支持MySQL,Mysql-->PG) Sonar版本升级(6.7.7 -> 7.9. ...

  5. springboot controller传参,对象映射

    Post请求,对象映射时,在参数 加 @RequestBody: 传入对象内字段的json才能映射 {"legendData": [100,90,80,70,60,50,40,30 ...

  6. 用 Flask 来写个轻博客 (16) — MV(C)_Flask Blueprint 蓝图

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 Blueprint 蓝图 定义一个蓝图 注册一个蓝图 创建蓝 ...

  7. C++——模板

    1.参数类型 template <typename T> void f1(T&);//实参必须是左值 f1(i);//对 f1(ci);//对,T的类型是const int f1( ...

  8. 02、python的基础-->占位符、while...else...、逻辑运算符

    1.%s.%d格式化输出程序(%占位符,s字符串,d数字) name = input('请输入姓名:') age = input('请输入年龄:') job = input('请输入工作:') hob ...

  9. jquery 条件搜索某个标签下的子标签

    $("li[name='"+name+"']").find("a[value='" + value + "']").pa ...

  10. VS2008中所有快捷键

    转载自:http://itfocus.diandian.com/post/2011-09-16/5091994 微软开发环境的可视化界面做的很全面,几乎所有的操作都可以通过可视化界面完成,但是你是否在 ...