2014-02-21 58 views
0

我嘗試使用cocos2d-x 2.2.2,Fedora 20和Eclipse Kepler將示例遊戲添加到示例遊戲(由create_project.py創建)時出現問題,cocos2d-x EditBox的簡單示例,錯誤未定義的參考

我在HelloWorldScene.cpp添加

using namespace cocos2d::extension; 
using namespace cocos2d::gui; 

CCEditBox *m_pEditName = CCEditBox::create(ccp(100,100),CCScale9Sprite::create("input_field.png")); 
m_pEditName->setPosition(ccp(origin.x+visibleSize.width/2, origin.y+visibleSize.height*3/4)); 
m_pEditName->setFontColor(ccRED); 
m_pEditName->setPlaceHolder("Name:"); 
m_pEditName->setMaxLength(8); 
m_pEditName->setReturnType(kKeyboardReturnTypeDone); 
addChild(m_pEditName); 

添加到我的HelloWorldScene.h

#include "cocos-ext.h" 

而且

fatal error: cocos-ext.h: No such file or directory 

我意識到,編譯器試圖找到在.h文件中得到一個錯誤的/ usr/include目錄或/ usr /本地/包括,所以我說我的makefile

INCLUDES += -I$(COCOS_ROOT)/extensions 
INCLUDES += -I$(COCOS_ROOT)/external/chipmunk/include/chipmunk 

,現在我得到另一個錯誤,請參閱下面我和makefile的錯誤

MAKEFILE

EXECUTABLE = thief 

COCOS_ROOT = ../../.. 

INCLUDES = -I.. -I../Classes 
INCLUDES += -I$(COCOS_ROOT)/extensions 
INCLUDES += -I$(COCOS_ROOT)/external/chipmunk/include/chipmunk 
#INCLUDES += -I$(COCOS_ROOT)/cocos2dx/kazmath/include 
#INCLUDES += -I$(COCOS_ROOT)/cocos2dx/include 
#INCLUDES += -I$(COCOS_ROOT)/cocos2dx 
#INCLUDES += -I$(COCOS_ROOT)/external/ 
#INCLUDES += -I$(COCOS_ROOT)/CocosDenshion/include 
#INCLUDES += -I$(COCOS_ROOT)/extensions/netwrok 
#INCLUDES += -I$(COCOS_ROOT)/external/libwebsockets/win32/include 


SOURCES = main.cpp \ 
     ../Classes/AppDelegate.cpp \ 
     ../Classes/HelloWorldScene.cpp 


include $(COCOS_ROOT)/cocos2dx/proj.linux/cocos2dx.mk 

SHAREDLIBS += -lcocos2d 
COCOS_LIBS = $(LIB_DIR)/libcocos2d.so 

$(TARGET): $(OBJECTS) $(STATICLIBS) $(COCOS_LIBS) $(CORE_MAKEFILE_LIST) 
    @mkdir -p $(@D) 
    $(LOG_LINK)$(CXX) $(CXXFLAGS) $(OBJECTS) -o [email protected] $(SHAREDLIBS) $(STATICLIBS) 

$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST) 
    @mkdir -p $(@D) 
    $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o [email protected] 

$(OBJ_DIR)/%.o: ../%.cpp $(CORE_MAKEFILE_LIST) 
    @mkdir -p $(@D) 
    $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o [email protected] 

控制檯登錄

02:56:14 **** Auto Build of configuration Default for project thief **** 
make all 
CXX obj/release/main.o 
CXX obj/release/Classes/AppDelegate.o 
CXX obj/release/Classes/HelloWorldScene.o 
LINK bin/release/thief 
obj/release/Classes/AppDelegate.o: In function `_GLOBAL__sub_I_AppDelegate.cpp': 
AppDelegate.cpp:(.text.startup+0x72): undefined reference to  cocos2d::gui::Margin::Margin()' 
obj/release/Classes/HelloWorldScene.o: In function `HelloWorld::init()': 
HelloWorldScene.cpp:(.text+0x50f): undefined reference to  cocos2d::extension::CCScale9Sprite::create(char const*)' 
HelloWorldScene.cpp:(.text+0x53f): undefined reference to  cocos2d::extension::CCEditBox::create(cocos2d::CCSize const&,  cocos2d::extension::CCScale9Sprite*, cocos2d::extension::CCScale9Sprite*,  cocos2d::extension::CCScale9Sprite*)' 
HelloWorldScene.cpp:(.text+0x59c): undefined reference to  cocos2d::extension::CCEditBox::setFontColor(cocos2d::_ccColor3B const&)' 
HelloWorldScene.cpp:(.text+0x5ab): undefined reference to  cocos2d::extension::CCEditBox::setPlaceHolder(char const*)' 
HelloWorldScene.cpp:(.text+0x5b8): undefined reference to  cocos2d::extension::CCEditBox::setMaxLength(int)' 
HelloWorldScene.cpp:(.text+0x5c5): undefined reference to  cocos2d::extension::CCEditBox::setReturnType(cocos2d::extension::KeyboardReturnType)' 
obj/release/Classes/HelloWorldScene.o: In function `_GLOBAL__sub_I_HelloWorldScene.cpp': 
HelloWorldScene.cpp:(.text.startup+0x72): undefined reference to  cocos2d::gui::Margin::Margin()' 
collect2: error: ld returned 1 exit status 
make: *** [bin/release/thief] Error 1 

02:56:15 Build Finished (took 777ms) 

有誰知道爲什麼會出現這種情況?

爲了建立我的cocos2d-x我用這個指令 Building Cocos2d-x on RHEL/Fedora/CentOS Linux

感謝

+0

這是否解決了它? –

+0

不,很遺憾,我還沒有找到解決方案。由於截止日期我現在在Windows上工作,我會在截止日期之後嘗試修復它。 – Parido

回答

1

您需要添加在 「擴展/ CocoStudio/GUI /佈局/ UILayoutDefine.cpp」 或刪除「cocos- ext.h「。