zoukankan      html  css  js  c++  java
  • 如何在Ubuntu下编译生成自己创建的Cocos2dx项目

          在网上找了很多资料,结果都是如果在Ubuntu下编译Cocos2d-x自带的那几个例子。刚开始对makefile不熟悉,结果弄了好久才弄好,在这里记录一下,顺便也给那些有需要的人做一个参考,不要走太多的弯路。     

          首先运行create-android-project.sh创建一个新的项目,我比较喜欢把项目放在一起,比较好管理,所以我把新建的项目移动到当前用户目录下的Projects/Cocos2dx目录下。

          然后进入proj.Android/jni目录下,打开Android.mk,修改如下:
    将:
        COCOS2DX_ROOT="$DIR/../.."
    改为:
        COCOS2DX_ROOT="$DIR/../../../../cocos2d-x-2.1.5/"  #相对于当前目录的cocos2d-x的目录,这是我的目录
    修改完成后保存以后就可以运行build_native.sh编译Android下的项目了,如果提示NDK_ROOT没有设置的话就使用export NDK_ROOT=(你的NDK的目录,同样也是相对于当前目录的位置),例如我的是export NDK_ROOT = ../../../../Android/ndk-r9

          如果想在Ubuntu下直接编译运行的话,就按下面的方法:

          先新建一个项目下新建一个文件夹proj.linux,然后在proj.linux下新建一个main.cpp文件,内容如下:

    #include "../Classes/AppDelegate.h"
    #include "cocos2d.h"
    
    #include <stdlib.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <string>
    
    USING_NS_CC;
    
    int main(int argc,char **argv)
    {
        AppDelegate app;
        CCEGLView *elgView = CCEGLView::sharedOpenGLView();
        elgView->setFrameSize(800,480);
    
        return CCApplication::sharedApplication()->run();
    }
    View Code

          这个代码同样,可以直接在例子中直接复制过来。
          接着在proj.linux下新建一个Makefile,内容如下(也可以直接从cocos2d-x中的例子中复制一个过来,然后按自己的项目修改):

    EXECUTABLE = newpathtest  #要生成的目标的名字
    
    INCLUDES = -I.. -I../Classes
    
    SOURCES = main.cpp 
        ../Classes/AppDelegate.cpp 
        ../Classes/HelloWorldScene.cpp
    
    COCOS_ROOT = ../../../../cocos2d-x-2.1.5    #相对于当前目录的cocos2d-x的位置
    include $(COCOS_ROOT)/cocos2dx/proj.linux/cocos2dx.mk
    
    SHAREDLIBS += -lcocos2d -lcocosdenshion
    COCOS_LIBS = $(LIB_DIR)/libcocos2d.so $(LIB_DIR)/libcocosdenshion.so
    INCLUDES += -I$(COCOS_ROOT)/CocosDenshion/include
    
    $(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 $@
    View Code

          最后在proj.linux目录下执行命令: make DEBUG=1 all  即可。
          当然,这些手动建造太麻烦,你也可以写一个shell文件来处理。

  • 相关阅读:
    百度网盘怎么批量删除好友,百度网盘怎么群发消息
    百度网盘不能公开分享了怎么办,怎么批量提取链接?
    百度云/百度网盘私密分享统一设置密码
    pdf.js浏览中文pdf乱码的问题解决
    百度网盘自动更新资源、百度网盘自动更新链接、百度网盘自动更新内容、百度网盘自动更新文件夹、百度网盘怎么自动更新、百度网盘自动更新课件、百度网盘文件自动更新、百度网盘怎么更新文件
    邓西百度网盘批量转存高级版,支持增量更新资料
    邓西百度知道刷赞工具
    spark streaming 3: Receiver 到 submitJobSet
    spark streaming 2: DStream
    spark streaming 1: SparkContex
  • 原文地址:https://www.cnblogs.com/tyrant2012/p/3313656.html
Copyright © 2011-2022 走看看