NDK编译POCO C++ 1.10.1

1 篇文章 0 订阅

 

文章目录

 


前言

关于在Windows上使用NDK编译POCO C++ 1.10.1-all 版本。


一、编译步骤

1.下载POCO C++ 1.10.1-all版本

Github上下载1.10.1版本,下载到指定位置解压。

2.编写Android.mk

LOCAL_PATH := $(call my-dir)
STL_HOME := D:/Android/android-ndk-r10e/sources/cxx-stl/gnu-libstdc++/4.9

APP_STL := gnustl_static

##### STL

include $(CLEAR_VARS)
LOCAL_MODULE := $(APP_STL)
LOCAL_SRC_FILES := $(STL_HOME)/libs/$(APP_ABI)/lib$(APP_STL).a
LOCAL_EXPORT_C_INCLUDES := $(STL_HOME)/libs/$(APP_ABI)/include
include $(PREBUILT_STATIC_LIBRARY)

##### PocoFoundation

include $(CLEAR_VARS)
LOCAL_MODULE   := PocoFoundation
LOCAL_CFLAGS   := -DPOCO_ANDROID -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING -DPOCO_NO_SHAREDMEMORY
LOCAL_CPPFLAGS := -std=c++11 -frtti -fexceptions
LOCAL_SHARED_LIBRARIES := gnustl_static
LOCAL_C_INCLUDES += $(STL_HOME)/include \
    $(LOCAL_PATH)/Foundation/include

LOCAL_SRC_FILES := \
    Foundation/src/AbstractObserver.cpp \
    Foundation/src/ActiveDispatcher.cpp \
    Foundation/src/adler32.c \
    Foundation/src/ArchiveStrategy.cpp \
    Foundation/src/Ascii.cpp \
    Foundation/src/ASCIIEncoding.cpp \
    Foundation/src/AsyncChannel.cpp \
    Foundation/src/AtomicCounter.cpp \
    Foundation/src/Base32Decoder.cpp \
    Foundation/src/Base32Encoder.cpp \
    Foundation/src/Base64Decoder.cpp \
    Foundation/src/Base64Encoder.cpp \
    Foundation/src/BinaryReader.cpp \
    Foundation/src/BinaryWriter.cpp \
    Foundation/src/Bugcheck.cpp \
    Foundation/src/ByteOrder.cpp \
    Foundation/src/Channel.cpp \
    Foundation/src/Checksum.cpp \
    Foundation/src/Clock.cpp \
    Foundation/src/compress.c \
    Foundation/src/Condition.cpp \
    Foundation/src/Configurable.cpp \
    Foundation/src/ConsoleChannel.cpp \
    Foundation/src/CountingStream.cpp \
    Foundation/src/crc32.c \
    Foundation/src/DateTime.cpp \
    Foundation/src/DateTimeFormat.cpp \
    Foundation/src/DateTimeFormatter.cpp \
    Foundation/src/DateTimeParser.cpp \
    Foundation/src/Debugger.cpp \
    Foundation/src/deflate.c \
    Foundation/src/DeflatingStream.cpp \
    Foundation/src/DigestEngine.cpp \
    Foundation/src/DigestStream.cpp \
    Foundation/src/DirectoryIterator.cpp \
    Foundation/src/Environment.cpp \
    Foundation/src/Error.cpp \
    Foundation/src/ErrorHandler.cpp \
    Foundation/src/Event.cpp \
    Foundation/src/EventArgs.cpp \
    Foundation/src/EventChannel.cpp \
    Foundation/src/Exception.cpp \
    Foundation/src/File.cpp \
    Foundation/src/FileChannel.cpp \
    Foundation/src/FileStream.cpp \
    Foundation/src/FileStreamFactory.cpp \
    Foundation/src/Format.cpp \
    Foundation/src/Formatter.cpp \
    Foundation/src/FormattingChannel.cpp \
    Foundation/src/FPEnvironment.cpp \
    Foundation/src/Glob.cpp \
    Foundation/src/Hash.cpp \
    Foundation/src/HashStatistic.cpp \
    Foundation/src/HexBinaryDecoder.cpp \
    Foundation/src/HexBinaryEncoder.cpp \
    Foundation/src/infback.c \
    Foundation/src/inffast.c \
    Foundation/src/inflate.c \
    Foundation/src/InflatingStream.cpp \
    Foundation/src/inftrees.c \
    Foundation/src/Latin1Encoding.cpp \
    Foundation/src/Latin2Encoding.cpp \
    Foundation/src/Latin9Encoding.cpp \
    Foundation/src/LineEndingConverter.cpp \
    Foundation/src/LocalDateTime.cpp \
    Foundation/src/LogFile.cpp \
    Foundation/src/Logger.cpp \
    Foundation/src/LoggingFactory.cpp \
    Foundation/src/LoggingRegistry.cpp \
    Foundation/src/LogStream.cpp \
    Foundation/src/Manifest.cpp \
    Foundation/src/MD4Engine.cpp \
    Foundation/src/MD5Engine.cpp \
    Foundation/src/MemoryPool.cpp \
    Foundation/src/MemoryStream.cpp \
    Foundation/src/Message.cpp \
    Foundation/src/Mutex.cpp \
    Foundation/src/NestedDiagnosticContext.cpp \
    Foundation/src/Notification.cpp \
    Foundation/src/NotificationCenter.cpp \
    Foundation/src/NotificationQueue.cpp \
    Foundation/src/NullChannel.cpp \
    Foundation/src/NullStream.cpp \
    Foundation/src/NumberFormatter.cpp \
    Foundation/src/NumberParser.cpp \
    Foundation/src/NumericString.cpp \
    Foundation/src/Path.cpp \
    Foundation/src/PatternFormatter.cpp \
    Foundation/src/pcre_config.c \
    Foundation/src/pcre_chartables.c \
    Foundation/src/pcre_compile.c \
    Foundation/src/pcre_dfa_exec.c \
    Foundation/src/pcre_exec.c \
    Foundation/src/pcre_fullinfo.c \
    Foundation/src/pcre_get.c \
    Foundation/src/pcre_globals.c \
    Foundation/src/pcre_jit_compile.c \
    Foundation/src/pcre_maketables.c \
    Foundation/src/pcre_newline.c \
    Foundation/src/pcre_ord2utf8.c \
    Foundation/src/pcre_refcount.c \
    Foundation/src/pcre_study.c \
    Foundation/src/pcre_tables.c \
    Foundation/src/pcre_ucd.c \
    Foundation/src/pcre_string_utils.c \
    Foundation/src/pcre_valid_utf8.c \
    Foundation/src/pcre_xclass.c \
    Foundation/src/pcre_version.c \
    Foundation/src/Pipe.cpp \
    Foundation/src/PipeImpl.cpp \
    Foundation/src/PipeStream.cpp \
    Foundation/src/PriorityNotificationQueue.cpp \
    Foundation/src/Process.cpp \
    Foundation/src/PurgeStrategy.cpp \
    Foundation/src/Random.cpp \
    Foundation/src/RandomStream.cpp \
    Foundation/src/RefCountedObject.cpp \
    Foundation/src/RegularExpression.cpp \
    Foundation/src/RotateStrategy.cpp \
    Foundation/src/Runnable.cpp \
    Foundation/src/RWLock.cpp \
    Foundation/src/Semaphore.cpp \
    Foundation/src/SHA1Engine.cpp \
    Foundation/src/SharedLibrary.cpp \
    Foundation/src/SharedMemory.cpp \
    Foundation/src/SignalHandler.cpp \
    Foundation/src/SimpleFileChannel.cpp \
    Foundation/src/SplitterChannel.cpp \
    Foundation/src/Stopwatch.cpp \
    Foundation/src/StreamChannel.cpp \
    Foundation/src/StreamConverter.cpp \
    Foundation/src/StreamCopier.cpp \
    Foundation/src/StreamTokenizer.cpp \
    Foundation/src/String.cpp \
    Foundation/src/StringTokenizer.cpp \
    Foundation/src/SynchronizedObject.cpp \
    Foundation/src/SyslogChannel.cpp \
    Foundation/src/Task.cpp \
    Foundation/src/TaskManager.cpp \
    Foundation/src/TaskNotification.cpp \
    Foundation/src/TeeStream.cpp \
    Foundation/src/TemporaryFile.cpp \
    Foundation/src/TextBufferIterator.cpp \
    Foundation/src/TextConverter.cpp \
    Foundation/src/TextEncoding.cpp \
    Foundation/src/TextIterator.cpp \
    Foundation/src/Thread.cpp \
    Foundation/src/ThreadLocal.cpp \
    Foundation/src/ThreadPool.cpp \
    Foundation/src/ThreadTarget.cpp \
    Foundation/src/TimedNotificationQueue.cpp \
    Foundation/src/Timer.cpp \
    Foundation/src/Timespan.cpp \
    Foundation/src/Timestamp.cpp \
    Foundation/src/Timezone.cpp \
    Foundation/src/Token.cpp \
    Foundation/src/trees.c \
    Foundation/src/UnicodeConverter.cpp \
    Foundation/src/Unicode.cpp \
    Foundation/src/URI.cpp \
    Foundation/src/URIStreamFactory.cpp \
    Foundation/src/URIStreamOpener.cpp \
    Foundation/src/UTF8Encoding.cpp \
    Foundation/src/UTF8String.cpp \
    Foundation/src/UTF16Encoding.cpp \
    Foundation/src/UTF32Encoding.cpp \
    Foundation/src/UUID.cpp \
    Foundation/src/UUIDGenerator.cpp \
    Foundation/src/Void.cpp \
    Foundation/src/Windows1250Encoding.cpp \
    Foundation/src/Windows1251Encoding.cpp \
    Foundation/src/Windows1252Encoding.cpp \
    Foundation/src/zutil.c

include $(BUILD_STATIC_LIBRARY)

3.编写build_android.bat

 cd /d %~dp0

set NDK_PROJECT_PATH=.
#set APP_ABI=armeabi-v7a
set APP_ABI=arm64-v8a
set NDK_TOOLCHAIN_VERSION=4.9
set APP_PLATFORM=android-21
set APP_OPTIM=release
set NDK_DEBUG=0

%NDK_ROOT%\ndk-build.cmd APP_BUILD_SCRIPT=%NDK_PROJECT_PATH%\Android.mk NDK_TOOLCHAIN_VERSION=%NDK_TOOLCHAIN_VERSION% APP_ABI=%APP_ABI% APP_PLATFORM=%APP_PLATFORM% APP_OPTIM=%APP_OPTIM% NDK_DEBUG=%NDK_DEBUG% NDK_PROJECT_PATH=%NDK_PROJECT_PATH%

 

总结

LOCAL_SRC_FILES需参考Foundation目录下的MakeFile文件否则可能会出现编译错误即xxx类型找不到的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值