LNK2001 錯誤, 和傳統Google出來的結果不一樣, 這一次谷姐沒有能幫助到自己,自食其力!
error LNK2001: 無法解析的外部符號 "public: virtual void __thiscall cocos2d::CCEGLView::setViewName(char const *)"
error LNK2001: 無法解析的外部符號 "unsigned int __cdecl hash_code(class type_info const &)" (?hash_code@YAIABVtype_info
@@Z)找不到鏈接,肯定是哪裏指向出錯了.
一切的錯誤都一定會有表現, 除了LNK2001這個偌大的錯誤提醒外,應該還有點別的.仔細觀察之:
E:\workstation\quick-cocos2d-x-jimi\lib\cocos2d-x\cocos2dx\platform\win32\CCEGLView.cpp
這不是我想要編譯的文件!
$${ROOT}/lib/cocos2d-x/cocos2dx/platform/qt/CCCommon.cpp \
$${ROOT}/lib/cocos2d-x/cocos2dx/platform/qt/CCAccelerometer.cpp \
$${ROOT}/lib/cocos2d-x/cocos2dx/platform/qt/CCApplication.cpp \
$${ROOT}/lib/cocos2d-x/cocos2dx/platform/qt/CCDevice.cpp \
$${ROOT}/lib/cocos2d-x/cocos2dx/platform/qt/CCEGLView.cpp \
$${ROOT}/lib/cocos2d-x/cocos2dx/platform/qt/CCStdC.cpp \
這個時候畢比較容易着急, make clean, qmake, make .......
結果卻得不到任何的改變~~
注意到一點, qt 平臺和 win 平臺下的文件名是一樣的. 改之試試:
$${ROOT}/lib/cocos2d-x/cocos2dx/platform/qt/CCCommonQt.cpp \
$${ROOT}/lib/cocos2d-x/cocos2dx/platform/qt/CCAccelerometerQt.cpp \
$${ROOT}/lib/cocos2d-x/cocos2dx/platform/qt/CCApplicationQt.cpp \
$${ROOT}/lib/cocos2d-x/cocos2dx/platform/qt/CCDeviceQt.cpp \
$${ROOT}/lib/cocos2d-x/cocos2dx/platform/qt/CCEGLViewQt.cpp \
$${ROOT}/lib/cocos2d-x/cocos2dx/platform/qt/CCStdCQt.cpp \
Bingo!! 無論怎麼重新clean,qmake, 編譯, 重編譯, 都不是個問題了!
結論:
不同的目標平臺下一定要保持實現文件不一樣, 帶上平臺後綴,以免去不必要的麻煩~