quick-cocos2d-x Qt版本在windows上遇到的編譯問題 LNK2001 !

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, 編譯, 重編譯, 都不是個問題了!


結論:

不同的目標平臺下一定要保持實現文件不一樣, 帶上平臺後綴,以免去不必要的麻煩~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章