Here is customized distribution of Android NDK r6 which I have rebuilt from official
sources. Starting from NDK r5, Google added support of C++ exceptions, RTTI and STL to
the official NDK. That's good but not enough for many peoples including me. Starting
from r5-crystax-1, main goal of this project will be improvements of official NDK (after
all, this is the best way to integrate such improvements into mainline - that's how it
was with full C++ support in Google's NDK).
One of such big improvements is C++ standard conformant support of wide chars (wide strings, streams etc).
Finally, after months of development, it's fully completed. You shouldn't care about wide chars/strings/streams
anymore when porting existing code to Android - just compile it using my NDK and go further.
Download and enjoy!
CrystaX NDK包含若干开源许可证. 详见每个模块的版权声明文件.
请注意CrystaX NDK发布包中也包括编译器,链接器,文档等的预编译二进制文件.
工具链的源码在GitHub
(你可以使用编译脚本自动下载它).
预编译的GCC和其他二进制文件(GDB, binutils 等等)基于the GNU General Public License (GPL) 或 the GNU Lesser General Public License (LGPL).
详见COPYING和COPYING.LIB,位于 $NDK/toolchains/$tc/prebuilt/$system.
预编译的LLVM/Clang工具链基于
LLVM "BSD" license.
基本上, 授权规则等同于Google's Android NDK - 例如, 允许商业&非商业用途. 唯一区别是CrystaX部分, 基于
BSD 2-clause license.
CrystaX NDK contains code from libc library of FreeBSD project which by-turn contains
code from other projects. Also, several another open-source projects used, such as GNU gcc,
GNU binutils, LLVM clang, LLVM libc++ etc. To see specific authors and/or licenses, look
into appropriate source file. Here is license for those parts which are not derived from
any other projects but written by CrystaX.
Copyright (c) 2011-2024 CrystaX.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are
permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list
of conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS SOFTWARE IS PROVIDED BY CrystaX ''AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CrystaX OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The views and conclusions contained in the software and documentation are those of the
authors and should not be interpreted as representing official policies, either expressed
or implied, of CrystaX.
You can also build your own distribution if you don't want to use my prebuilt versions. To do that, follow instructions below.
Setting up build environment:
Follow instructions from
AOSP site except Java part.
WARNING!!! Starting from r5, NDK can be built only on Linux/Mac machines. Windows build is not more supported!
However, Windows binaries can be built on Linux using so called "cross-canadian build". To do that, you need install
mingw32 package; build script will detect it and build Windows binaries automatically.
Instructions
Thank you for downloading CrystaX NDK
(will start in seconds)!
CrystaX NDK is a fully open source project, free to use in any open-source and commercial environment.
We provide it free for use and don't ask our users to pay in exchange. However, we appreciate your support,
through sending us pull requests,
spreading the news about CrystaX NDK over the world, or just donating:
Who we are
We're a small team of developers who want to make development for Android easier.
Our goal is to create a comprehensive toolkit for native development for Android on C, C++, Objective-C,
and, potentially, in other programming languages already working on modern POSIX systems
(Swift, D, Haskell, Ocaml, Python, Ruby - you name it).
We've already done a lot (as you can see on our main project page),
but we want to do even more. We have a long way to go, but we know how to do it and can clearly see
the steps required to make it happen. You can read more about us here.
Why we need your support
Since we started working on CrystaX NDK, we have funded ourselves without any sponsorship.
That has led us to make money in other ways (such as working as contractors and doing consulting
jobs on other projects) and invest our earnings in the CrystaX NDK project.
Because of this we have only been able to work on NDK part-time, which means it is not
as powerful as it could be.
Having support from the community, we could pay more attention to CrystaX NDK development, without the
distraction on paid contracts. This will speed up CrystaX NDK development as well as
bug fixing and support.
Optionally, sponsors (those who send us $200/month or more) get in exchange a number of perks -
they get priority for consulting or training needs, they can be listed on the front page of the
CrystaX website and mentioned in the project README, etc.
Please read here for more details about
sponsoring options.
WARNING!
When the download is finished, please check that the downloaded file is not corrupted!
The SHA-256 hash must be .
Here is an example of how to check it using OpenSSL:
$ CHECKSUM= && \
FILE= && \
echo "$CHECKSUM $FILE" | sha256sum --check