fatal error C1189: #error : "No Target Architecture" 解決辦法一


在編譯程序的時候發現報這個錯誤,在網上看到很多文章,說設置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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM