冰冰的小屋

路漫漫其修远兮,吾将上下而求索

解决:Cocos2d 打包安卓时出现 error variable dll_port ClassName has initializer...


今天在 Q 群有个群友问:做一个 Cocos2d 的项目在打包安卓的时候出错了,出现了这么一个情况,error: variable ‘dll_port CPackgeMgr’ has initializer but incomplete type class dll_port CPackgeMgr

后来他看代码发现,代码处是这么写的:

他不知道是什么意思,问如何解决。


我看到这个问题,回想到我之前做一个项目的时候,需要把一个纯 Mac 上的 Cocos2d 的项目移植到 Windows 上做开发。因为一些 Cocos2d 的库被修改过编译的时候出现 DLL 引用的问题,所以特意了解了下这方面的问题。这次这个群友出现了这个问题,虽然不是相同的问题,但是问题的根本原因是一致的,都是 DLL 声明编译的问题。我给他指出了把上面的代码做如下更改:

他修改后回复说,编译通过,的确是这个问题导致的。

后来我们讨论说,看这个项目的写法,应该之前的项目是纯 Win32 的项目,为了在 Windows 的编译这么写,但是没有考虑 Android 和 iOS 的编译问题,如果做了上面的修改才会在编译的时候忽略 dll_port 做到不同平台的兼容。

点赞
  1. 增达网说道:

    从百度进来的,拜读一下贵站博文先
    丁酉年(鸡)二月十五 2017-3-12

发表评论

电子邮件地址不会被公开。 必填项已用*标注