给新建的Cocos2d-x 3.x 的Win32工程添加CocoStudio库

来源:互联网 发布:分班软件fenban 编辑:程序博客网 时间:2024/05/17 22:06

注:针对3.2及以前版本,3.3以后不需要引入CocosStudio库 

文章转载自:http://www.cocoachina.com/bbs/read.php?tid=194668

今天用3.2版本打开以前的项目,出现了许多错误,错误如下:

7>Loginsc.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall cocos2d::ui::Margin::Margin(void)" (??0Margin@ui@cocos2d@@QAE@XZ) 
7>Loginsc.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall cocos2d::ui::Widget::addTouchEventListener(class cocos2d::Ref *,void (__thiscall cocos2d::Ref::*)(class cocos2d::Ref *,enum cocos2d::ui::TouchEventType))" (?addTouchEventListener@Widget@ui@cocos2d@@QAEXPAVRef@3@P843@AEX0W4TouchEventType@23@@Z@Z),该符号在函数 "public: virtual void __thiscall LoginSC::onEnter(void)" (?onEnter@LoginSC@@UAEXXZ) 中被引用 
7>Loginsc.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall cocos2d::ui::TextField::addEventListenerTextField(class cocos2d::Ref *,void (__thiscall cocos2d::Ref::*)(class cocos2d::Ref *,enum cocos2d::ui::TextFiledEventType))" (?addEventListenerTextField@TextField@ui@cocos2d@@QAEXPAVRef@3@P843@AEX0W4TextFiledEventType@23@@Z@Z),该符号在函数 "public: virtual void __thiscall LoginSC::onEnter(void)" (?onEnter@LoginSC@@UAEXXZ) 中被引用 
7>Loginsc.obj : error LNK2019: 无法解析的外部符号 "public: static class cocos2d::ui::Widget * __cdecl cocos2d::ui::Helper::seekWidgetByName(class cocos2d::ui::Widget *,char const *)" (?seekWidgetByName@Helper@ui@cocos2d@@SAPAVWidget@23@PAV423@PBD@Z),该符号在函数 "public: virtual void __thiscall LoginSC::onEnter(void)" (?onEnter@LoginSC@@UAEXXZ) 中被引用 
7>Loginsc.obj : error LNK2019: 无法解析的外部符号 "public: static void __cdecl cocostudio::ActionManagerEx::destroyInstance(void)" (?destroyInstance@ActionManagerEx@cocostudio@@SAXXZ),该符号在函数 "public: virtual void __thiscall LoginSC::onExit(void)" (?onExit@LoginSC@@UAEXXZ) 中被引用 
7>Loginsc.obj : error LNK2019: 无法解析的外部符号 "public: static class cocostudio::GUIReader * __cdecl cocostudio::GUIReader::getInstance(void)" (?getInstance@GUIReader@cocostudio@@SAPAV12@XZ),该符号在函数 "public: virtual void __thiscall LoginSC::onEnter(void)" (?onEnter@LoginSC@@UAEXXZ) 中被引用 
7>Loginsc.obj : error LNK2019: 无法解析的外部符号 "public: static void __cdecl cocostudio::GUIReader::destroyInstance(void)" (?destroyInstance@GUIReader@cocostudio@@SAXXZ),该符号在函数 "public: virtual void __thiscall LoginSC::onExit(void)" (?onExit@LoginSC@@UAEXXZ) 中被引用 
7>Loginsc.obj : error LNK2019: 无法解析的外部符号 "public: class cocos2d::ui::Widget * __thiscall cocostudio::GUIReader::widgetFromJsonFile(char const *)" (?widgetFromJsonFile@GUIReader@cocostudio@@QAEPAVWidget@ui@cocos2d@@PBD@Z),该符号在函数 "public: virtual void __thiscall LoginSC::onEnter(void)" (?onEnter@LoginSC@@UAEXXZ) 中被引用 
7>Loginsc.obj : error LNK2019: 无法解析的外部符号 "public: static void __cdecl cocostudio::SceneReader::destroyInstance(void)" (?destroyInstance@SceneReader@cocostudio@@SAXXZ),该符号在函数 "public: virtual void __thiscall LoginSC::onExit(void)" (?onExit@LoginSC@@UAEXXZ) 中被引用 
7>E:\CHY_GPRO\aabb\proj.win32\Debug.win32\aabb.exe : fatal error LNK1120: 9 个无法解析的外部命令 

从错误中看出少了cocostudio这个第三方库,那下面就给项目添加这个库:

第一步:往项目中添加这三个项目:

cocos2d\cocos\editor-support\cocostudio\proj.win32\libCocosStudio.vcxproj  
cocos2d\extensions\proj.win32\libExtensions.vcxproj  
Ccocos2d\cocos\ui\proj.win32\libGUI.vcxproj  


第二步:

给新加进来的项目添加引用





第三步:
选择项目右键"配置属性" => "C/C++" => "附加包含目录" 并编辑.  
添加下面几行  
$(EngineRoot)cocos  
$(EngineRoot)extensions  
$(EngineRoot)cocos\editor-support\  
$(EngineRoot)cocos\editor-support\cocostudio  


再次编译就OK了!


0 0