码迷,mamicode.com
首页 > 其他好文 > 详细

DLL转换so(NDK配置)

时间:2014-12-27 17:41:00      阅读:361      评论:0      收藏:0      [点我收藏+]

标签:dll转so      

情况:

你用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

DLL转换so(NDK配置)

标签:dll转so      

原文地址:http://blog.csdn.net/panpen120/article/details/42193003

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!