ObjectARX 常見編譯錯誤解決方式記錄


C1189 Winver 0x501 fatal error C1189: #error: MFC does not support WINVER less than 0x0501.

方式一&方式二

注釋掉后,vs會自動從WinSDKVer.h頭文件獲取
_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)

C1189 RTCc fatal error C1189: #error: /RTCc rejects conformant code

方式一

增加預處理定義 _ALLOW_RTCc_IN_STL

方式二

define _ALLOW_RTCc_IN_STL

方式三

修改代碼生成中的較小類型檢查/RTCc 為否

C2220 警告被視為錯誤 error C2220: 警告被視為錯誤 - 沒有生成“object”文件

方式一

修改警告的錯誤,保證不出現這個警告 ,例如這個int類型改為UINT類型

方式二

修改屬性頁,修改c/c++->常規->警告視為錯誤 改為否

方式三

禁用出現的這個警告編號 (disable:4838),這樣就不會出現警告提示

LNK2001 無法解析的外部符號"void *_cdecl acHeapAlloc(void *,unsigned _int64)" (?acHeapAlloc@@YAPEAXPEAX_K@Z)

解答 by gzxl 缺少庫

#if _MSC_VER >= 1920   // ObjectARXSDK 2021以上
#pragma comment(lib, "AcPal.lib")
#pragma comment(lib, "acgeoment.lib")
#endif

LNK111 模塊計算機類型"x64"與目標計算機類型“X86"沖突 或 模塊計算機類型"X86"與目標計算機類型“x64"沖突

解答

“模塊計算機類型”一般指的是調用已經編譯好的lib庫文件的是x64, 而 “目標計算機類型“X86” 是指的當前編譯設置的編譯平台是win32(x86),當引用的lib文件和當前平台不匹配的時候,
就會提示這個問題。設置好正確的lib即可。在arx中一般是庫目錄的問題,確保庫目錄正確。


免責聲明!

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



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