欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

cocos2dx ext使用环境问题

程序员文章站 2022-07-13 17:07:03
...

今天有个小伙伴在cocos2dx自带的HelloWorldCpp中,添加使用cocos2dx 的九宫格图支持的功能时,遇到了一系列问题,想想也奇怪,在添加之前工程能够正常跑起来,代码也是参考TestCpp里拷过来的,在拷过来之前也能正常运行,纠结了大半天,一直没有找到最终解决办法,主要问题是两个:

1、知道九宫格是引入哪一个头文件,可是引入之后报错,找不到对应的文件;

2、解决了头文件找不到的问题之后,能编译了,又出现链接错误;

 

出现两个问的根本原因,还是在于对引擎项目架构不熟悉以及对Visual Studio特点不是很了解

 

整理了一下cocos2dx使用ext遇到这两个问题的解决步骤,也记录一下,方便后面可以直接给自己、给他人看看

首先要引入的头文件是cocos-ext.h,然后一般跟cocos还有一个单独的命名空间,同样引入使用,具体代码如下 

#include "cocos-ext.h"
USING_NS_CC_EXT;

 

这时如果是在HelloCpp工程上改的话,那么就会出现头文件找不到咯,当然平常我们搭建项目时,绝大部分都是通过拷贝HelloCpp工程,然后在它的基础上去改,这样可以减少很多项目配置的工作,然而helloCpp在跟cocos2dx完整项目TestCpp是有挺多区别的。

 

第一个问题,实际上就是项目的C++附加包含目录设置问题,也就是include的目录,使用ext对应的目录就没有,小伙伴用的九宫格就需要有$(ProjectDir)..\..\..\..\extensions,这个是需要我们手动去添加修改的,

在项目上右键,选择属性-->配置属性-->C/C++-->常规-->附加包含目录-->点击,有下拉选择编辑,添加我们需要的附加项,添加之后,如下图

cocos2dx ext使用环境问题
            
    
    博客分类: cocos2dxC/C++ cocos2dxcocos-extextensionlibExtensions链接

 

第二个错误,实际是vs链接工程里,没有找到对应的链接库

 

报的错如下:

 

HelloWorldScene.obj : error LNK2019: 无法解析的外部符号 "public: static class 
cocos2d::extension::CCScale9Sprite * __cdecl 
cocos2d::extension::CCScale9Sprite::create(char const *)" 
(?create@CCScale9Sprite@extension@cocos2d@@SAPAV123@PBD@Z),
该符号在函数 "public: virtual bool __thiscall HelloWorld::init(void)" 
(?init@HelloWorld@@UAE_NXZ) 中被引用

 

 

 对比TestCpp,我们也能发现实际上,缺的就是libExtensions.lib

添加上,即可以正常链接了。

步骤如下:在项目上右键,选择属性-->配置属性-->链接器-->输入-->附加依赖项,点击有下拉框,选择编辑

将libExtensions.lib加上就可以了,

最终如下图:


cocos2dx ext使用环境问题
            
    
    博客分类: cocos2dxC/C++ cocos2dxcocos-extextensionlibExtensions链接
 

完成之后,项目就能正常运行了。

  • cocos2dx ext使用环境问题
            
    
    博客分类: cocos2dxC/C++ cocos2dxcocos-extextensionlibExtensions链接
  • 大小: 72 KB
  • cocos2dx ext使用环境问题
            
    
    博客分类: cocos2dxC/C++ cocos2dxcocos-extextensionlibExtensions链接
  • 大小: 67.3 KB