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, 编译, 重编译, 都不是个问题了!
结论:
不同的目标平台下一定要保持实现文件不一样, 带上平台后缀,以免去不必要的麻烦~