解决Cygwin编译cocos2dx 遇到的 error: 'UINT64_C' was not declared in this scope 问题

本文介绍了解决在使用Cocos2d-x进行Android应用开发时遇到的一个常见错误:'UINT64_C'未声明的问题。通过调整Android.mk文件中的LOCAL_CFLAGS变量,成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境工具:Win10、VS2013、cocos2d-x-2.2.6、Cygwin、ADT

问题来源:写了一个小游戏,VS2013上运行成功,就尝试着打包apk,项目导入到ADT里面,添加了cocos2dx lib库以后,讨厌的红x消失,下来就是在cygwin里面预编译得到xxx.so文件了,但是问题来了,报错!!!

jni/../../Classes/GameLayer.cpp:227:46: error: 'UINT64_C' was not declared in this scope

怎么解决呢?

看了一下'UINT64_C'的定义文件 stdint.h 路径显示是vs自带的,好像有点复杂了

那'UINT64_C'是什么呢?

经过查资料,简单的说,是一种数据类型,编译的时候默认是C文件来编译的,但是我用的是C++,错误便出现了。

既然是在打包apk的路上出的错,问题差不多就得往这方面考虑解决,于是查资料了解到

LOCAL_CFLAGS变量为C/C++编译器定义额外的标志,当编译C/C++源文件时传递一个可选的编译器标志,这对于指定额外的宏定义或编译选项很有用。

解决方案:

在Android.mk文件里添加:

LOCAL_CFLAGS := -D__STDC_CONSTANT_MACROS

问题得以解决。

 

转载于:https://www.cnblogs.com/revenge/p/5585961.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值