cocos2d-x 编辑框的简单示例,错误未定义引用
cocos2d-x simple example of EditBox, error undefined reference to
我在尝试使用 cocos2d-x 2.2.2、Fedora 20 和 Eclipse Kepler 将 EditBox 添加到示例游戏(由 create_project.py 创建)时遇到问题,
我在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
我意识到编译器正在尝试在/usr/include 或/usr/local/include 中找到 .h 文件,所以我添加到我的 makefile
INCLUDES += -I$(COCOS_ROOT)/extensions
INCLUDES += -I$(COCOS_ROOT)/external/chipmunk/include/chipmunk
现在我收到另一个错误,请参阅下面的我的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 $@ $(SHAREDLIBS) $(STATICLIBS)
$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST)
@mkdir -p $(@D)
$(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o $@
$(OBJ_DIR)/%.o: ../%.cpp $(CORE_MAKEFILE_LIST)
@mkdir -p $(@D)
$(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o $@
控制台日志
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,我使用了这个说明在RHEL/Fedora/CentOS Linux上构建Cocos2d-x
谢谢
你需要
添加"extensions/CocoStudio/GUI/Layouts/UILayoutDefine.cpp"或从代码中删除"cocos-ext.h"。
相关文章:
- 错误:未定义对cv::cudacodec::createVideoReader的引用
- Pybind11 错误未定义对"Py_GetVersion"的引用
- 纯虚拟类和错误未定义对 'vtable 的引用
- 为什么我会收到链接器错误:未定义对 ..?
- 链接错误:未定义对 stdscr 和 wgetch 的引用
- 尝试构建 xerces c++ 解析器。Netbeans 和命令行构建错误未定义对"xercesc_3_2..."的引用
- 错误:未定义的符号:gzclose opencv emscripten
- 我不断收到对项目"xxx"的错误未定义引用
- 我仍然收到此错误未定义的引用:boost::log::v2_mt_posix::trivial::logger::get
- 符号查找错误未定义的符号:curl_mime_init
- Omnet 和 Inet 链接错误:未定义对 typinfo 的引用
- 模拟 __name__ = __main__ 在 c++ 中会导致错误"未定义类似函数的宏"
- 链接器错误:未定义的引用C++
- OpenCv3.3安装错误-未定义对的引用
- CUDA 编译错误:未定义__hmul和__hneg
- C++错误:未定义对 (Winsock2.h) 的引用
- 错误:未定义对 .. 的引用.怎么了
- 无法生成项目,出现错误 - 未定义的体系结构符号 x86_64:"_JNI_CreateJavaVM"
- 编译错误:未定义的拱门
- C 编程原理和练习第7章练习4 symber_table :: get_value始终显示错误未定义