java2pas操作说明_NOTES.ANDROID
发布日期:2021-10-26 17:40:41 浏览次数:2 分类:技术文章

本文共 3656 字,大约阅读时间需要 12 分钟。

NOTES FOR ANDROID PLATFORMS

===========================

Requirement details

-------------------

Beside basic tools like perl and make you'll need to download the Android

NDK. It's available for Linux, Mac OS X and Windows, but only Linux

version was actually tested. There is no reason to believe that Mac OS X

wouldn't work. And as for Windows, it's unclear which "shell" would be

suitable, MSYS2 might have best chances. NDK version should play lesser

role, the goal is to support a range of most recent versions.

Configuration

-------------

Android is naturally cross-compiled target and you can't use ./config.

You have to use ./Configure and name your target explicitly; there are

android-arm, android-arm64, android-mips, android-mip64, android-x86

and android-x86_64. Do not pass --cross-compile-prefix (as you might

be tempted), as it will be "calculated" automatically based on chosen

platform. Though you still need to know the prefix to extend your PATH,

in order to invoke $(CROSS_COMPILE)gcc and company. (Configure will fail

and give you a hint if you get it wrong.) Apart from PATH adjustment

you need to set ANDROID_NDK_HOME environment to point at NDK directory

as /some/where/android-ndk-. Both variables are significant at both

configuration and compilation times. NDK customarily supports multiple

Android API levels, e.g. android-14, android-21, etc. By default latest

one available is chosen. If you need to target older platform, pass

additional -D__ANDROID_API__=N to Configure. N is numeric value of the

target platform version. For example, to compile for ICS on ARM with

NDK 10d:

export ANDROID_NDK_HOME=/some/where/android-ndk-10d

PATH=$ANDROID_NDK_HOME/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin:$PATH

./Configure android-arm -D__ANDROID_API__=14

make

Caveat lector! Earlier OpenSSL versions relied on additional CROSS_SYSROOT

variable set to $ANDROID_NDK_HOME/platforms/android-/arch- to

appoint headers-n-libraries' location. It's still recognized in order

to facilitate migration from older projects. However, since API level

appears in CROSS_SYSROOT value, passing -D__ANDROID_API__=N can be in

conflict, and mixing the two is therefore not supported. Migration to

CROSS_SYSROOT-less setup is recommended.

One can engage clang by adjusting PATH to cover same NDK's clang. Just

keep in mind that if you miss it, Configure will try to use gcc...

Also, PATH would need even further adjustment to cover unprefixed, yet

target-specific, ar and ranlib. It's possible that you don't need to

bother, if binutils-multiarch is installed on your Linux system.

Another option is to create so called "standalone toolchain" tailored

for single specific platform including Android API level, and assign its

location to ANDROID_NDK_HOME. In such case you have to pass matching

target name to Configure and shouldn't use -D__ANDROID_API__=N. PATH

adjustment becomes simpler, $ANDROID_NDK_HOME/bin:$PATH suffices.

Running tests (on Linux)

------------------------

This is not actually supported. Notes are meant rather as inspiration.

Even though build output targets alien system, it's possible to execute

test suite on Linux system by employing qemu-user. The trick is static

linking. Pass -static to Configure, then edit generated Makefile and

remove occurrences of -ldl and -pie flags. You would also need to pick

API version that comes with usable static libraries, 42/2=21 used to

work. Once built, you should be able to

env EXE_SHELL=qemu- make test

If you need to pass additional flag to qemu, quotes are your friend, e.g.

env EXE_SHELL="qemu-mips64el -cpu MIPS64R6-generic" make test

一键复制

编辑

Web IDE

原始数据

按行查看

历史

转载地址:https://blog.csdn.net/weixin_33952775/article/details/114950224 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java 腾讯认证_腾讯生物认证平台 TENCENT SOTER
下一篇:TowerJ编译java_2020阿里最新出品的泰山版Java开发手册,告别垃圾代码

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月15日 06时41分32秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章