首先要装好并配置好NDK,下载UDT源码。下面从创建jni目录开始
1 创建jni目录,可以是任意的xxxxxx/jni
2 把udt源码移动或拷贝到jni目录下
../udt-test/jni/UDT4
3 创建Android.mk
在udt的src目录下添加Android.mk文件,其内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
APP_STL := gnustl_static
LOCAL_CFLAGS := -DLINUX -fvisibility=hidden
LOCAL_ARM_MODE := arm
LOCAL_CPPFLAGS := -fPIC -Wall -Wextra -DLINUX -finline-functions -O3 -fno-strict-aliasing -fvisibility=hidden
LOCAL_LDLIBS :=-L$(SYSROOT)/usr/lib -llog
LOCAL_C_INCLUDES := /usr/include/c++/4.5/
LOCAL_CPP_EXTENSION:=.cpp
LOCAL_MODULE := udt
LOCAL_SRC_FILES := md5.cpp common.cpp window.cpp list.cpp buffer.cpp packet.cpp channel.cpp queue.cpp ccc.cpp cache.cpp core.cpp epoll.cpp api.cpp
include $(BUILD_SHARED_LIBRARY)
设置工程目录:
export NDK_PROJECT_PATH=~/Desktop/wshare/udt-test
之后输入ndk-build进行编译会出现如下错误
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file:
因为还有Android.mk未创建
分别在jni目录和udt目录下创建Android.mk,文件内容均为
include $(all-subdir-makefiles)
ndk-build进行编译会出现如下错误
error: fstream: No such file or directory
error: set: No such file or directory
error: string: No such file or directory
error: vector: No such file or directory
因为还有一步
在jni目录下创建Application.mk,其内容如下
APP_STL := gnustl_static
OK,小功告成。编译完成后会在jni目录下生成两个目录,libs,obj。可以在其中找到生成的动态库libudt.so
我想要的是静态库libudt.a,怎么办呢?
很简单,把上面Android.mk中的这一行include $(BUILD_SHARED_LIBRARY)
换成include $(BUILD_STATIC_LIBRARY)
然后输入ndk-build,没什么反应。嗯……
还得在上面提到的Application.mk文件中添加如下内容
APP_MODULES := libudt
原文链接: https://www.cnblogs.com/uvsjoh/archive/2013/03/28/2987302.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/82430
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!