c2371 重定义
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
原因:包含的兩個(gè)不同庫(kù)中使用了同樣的定義
解決(未驗(yàn)證):將兩個(gè)頭文件調(diào)整一下包含的順序(如果頭文件被包含在同一文件中)
?
舉例:error C2371: 'WCHAR':redefinition; different basic types
翻譯:這個(gè)類(lèi)型重定義,并且基礎(chǔ)類(lèi)型不同。即使用了同一個(gè)名稱(chēng)定義了不同的變量類(lèi)型
?
兩個(gè)沖突的頭文件沒(méi)有同時(shí)包含在同一文件夾下的情況,解決辦法有兩種:
①逐層找到個(gè)文件的父文件的沖突根源所在,例如,a.h和b.h沖突,head.h/head1.h/head2.h/a.h與head.h/head1.h/b.h,在這種情況下,可將head2.h與b.h調(diào)整位置或可解決
②將當(dāng)前要包含的頭文件包含到該.h文件對(duì)應(yīng)的.cpp文件中,在該.h文件的命名空間中聲明要包含的頭文件
平時(shí)應(yīng)注意,如果編譯未提示需包含某文件,則盡可能不在此包含。另外,某些作為基礎(chǔ)的頭文件中定義常用的頭文件時(shí),需使用#ifndef AB...#define AB...#endif句型處理則最為穩(wěn)妥
轉(zhuǎn)載于:https://my.oschina.net/qtplus/blog/716385
總結(jié)
- 上一篇: springmvc中的全注解模式
- 下一篇: 软件测试面试总结