DLL转换so(NDK配置)

潘鹏在CSDN上原创,如其他网站转载请注意排版和写明出处:

情况:

你用C++写了后台生成DLL,用unity3D调用DLL,游戏PC版OK,但是想变成手游,需要将DLL变成so

步骤:

1.安装jdk,配置安卓环境、eclipse(这个不说了,网上泛滥)

2.打开eclipse新建个Android项目,Flie--new--第二个,建的时候写个名字,剩下的一路next


3.在新建的项目下面新建一个文件夹jni,在这个文件夹里在创建一个文件夹cpp,将你生成DLL的那些所有的.cpp和.h都放进去


4.在jni文件夹下面新建文件,flie,命名为Andriod.mk(要写后缀名)

在这里面写

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := OnePersonDll------------------这里是你生成so的名字,和你DLL的名字保持一致,后面用so的时候前台调用的名字不用改了

MY_CPP_LIST := $(wildcard $(LOCAL_PATH)/cpp/*.cpp)----------这里是cpp,是你装文件的文件夹名字,LIST,文件夹,将你所有文件一次性的导入

#MY_CPP_LIST += $(wildcard $(LOCAL_PATH)/c++/*.cpp)
LOCAL_SRC_FILES := $(MY_CPP_LIST:$(LOCAL_PATH)/%=%)
#LOCAL_SRC_FILES := hello-jni.c

include $(BUILD_SHARED_LIBRARY)


5.配置NDK

http://www.cnblogs.com/yejiurui/p/3476565.html  可参考

elicpes上面倒数第四个,Project->Properties->Builders->New,新建一个Builder


(第一个选项)Main

选Browse File System


选Browse File System,找到你新建的这个安卓项目里面的一个ndk-build.cmd


这里简单了,直接打开Browse Workspace直接选择你新建的安卓项目


下面有一个Apple的选项,按下,每个页面设置完都要按下

(第二个选项)Refresh

选项和下面勾对一样,Sp那里进去选你项目里的jni文件夹


(第四个选项)Build Options:(和第三个类似,倒数第二个对号的是自动的意思,生成so自动生成)


6.生成so

Ctrl +s保存,就自动生成,如果没有错的话,就是像下面一样黑的


然后在计算机里你安卓项目的地方libs的文件夹里会自动生成一个armeabi的文件夹,里面就有.so


7.过程中遇到的问题

(1).cpp和.h里面有StdAfx.h,C标准库的东西,删掉


(2).库函数的地方删掉__declspec(dllexport),这是DLL的东西


(3).我忘记截图了,就是指针赋空的NULL都得换为0

(4)我用的随机数,不允许,在前面加了stdlib.h


(5)如果你用了C++STL的东西,像创建Andriod.mk的方式创建Application.mk,里面写

Application.mk文件中添加APP_STL := stlport_static 

 或APP_STL := gnustl_static

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值