[安卓]2dx 转译到 android 小记

本文解决了一个在Cocos2d-x项目中遇到的问题,即使用OpenSSL时出现的编译错误。通过修改jni的Android.mk文件,指定了正确的头文件路径和库文件路径后,成功解决了编译过程中的fatal error和链接阶段的invalid character问题。

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

一、执行 build_native.sh 时报错了(项目中使用到了 openssl,胡乱找了些头文件丢在库目录里面)
=========================================================================================
sogas-Mac-mini:~ soga$ /Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android/build_native.sh
NDK_ROOT = /Users/soga/Downloads/android-ndk-r8e
COCOS2DX_ROOT = /Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android/../../..
APP_ROOT = /Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android/..
APP_ANDROID_ROOT = /Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android
Using prebuilt externals
make: Entering directory `/Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android'
Compile++ thumb  : cocos2dcpp_shared <= main.cpp
Compile thumb  : cocos2dcpp_shared <= sqlite3.c
cc1: warning: command line option '-Wno-conversion-null' is valid for C++/ObjC++ but not for C [enabled by default]
In file included from jni/../../libs.cpp/sqlite3/sqlite3.c:13657:0:
jni/../../libs.cpp/openssl/rand.h:67:21: fatal error: windows.h: No such file or directory
compilation terminated.
make: *** [obj/local/armeabi/objs/cocos2dcpp_shared/__/__/libs.cpp/sqlite3/sqlite3.o] Error 1
make: Leaving directory `/Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android'

二、在 jni 的 Android.mk 中加入如下行
=========================================================================================
LOCAL_C_INCLUDES :=$(LOCAL_PATH)/../../Classes \
                   /Users/soga/Downloads/openssl-1.0.1h/include \
LOCAL_LDFLAGS := $(LOCAL_PATH)/../../libs.cpp/libcrypto.a \
                 $(LOCAL_PATH)/../../libs.cpp/libsqlcipher.a

三、再执行的时候编译顺利通过了(坑爹的,等 link 的时候就跟老子说 invalid character,因为 .a 文件的架构不是 armeabi)
=========================================================================================
sogas-Mac-mini:~ soga$ /Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android/build_native.sh
NDK_ROOT = /Users/soga/Downloads/android-ndk-r8e
COCOS2DX_ROOT = /Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android/../../..
APP_ROOT = /Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android/..
APP_ANDROID_ROOT = /Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android
Using prebuilt externals
make: Entering directory `/Users/soga/Desktop/cocos2d-x-2.2.3/projects/CatchMonkey/proj.android'
Compile++ thumb  : cocos2dcpp_shared <= main.cpp
Compile thumb  : cocos2dcpp_shared <= sqlite3.c
cc1: warning: command line option '-Wno-conversion-null' is valid for C++/ObjC++ but not for C [enabled by default]
Compile++ thumb  : cocos2dcpp_shared <= Robot.cpp
Compile++ thumb  : cocos2dcpp_shared <= Monkey.cpp
Compile++ thumb  : cocos2dcpp_shared <= Claw.cpp
Compile++ thumb  : cocos2dcpp_shared <= Net.cpp

Compile++ thumb  : cocos2dcpp_shared <= MainSceneLayer.cpp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值