`
l241002209
  • 浏览: 88223 次
文章分类
社区版块
存档分类
最新评论

把ndk作为独立编译器

阅读更多
USING THE ANDROID TOOLCHAIN AS A STANDALONE COMPILER
使用 Android 工具链作为一个独立编译器
======================================================

WARNING WARNING WARNING WARNING WARNING WARNING WARNINGWARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNINGWARNING

SUPPORT FOR THIS FEATURE IS STILL IN BETA
AND ONLY APPLIES TO arm-linux-androideabi-4.4.3
支持这个功能仍旧在 beta 版且仅适用于 arm-linux-androideabi-4.4.3

IF YOU ENCOUNTER A PROBLEM WITH THE METHODS DESCRIBEDHERE,<wbr></wbr>
PLEASE CONTACT THE SUPPORT FORUM ATandroid-ndk@googlegroups.com
如果你在这里遇到一个用此方法描述的问题,请在支持论坛联系

WARNING WARNING WARNING WARNING WARNING WARNING WARNINGWARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNINGWARNING

It is now possible to use thetoolchain<wbr></wbr>
provided with the Android NDK as a standalonecompiler.<wbr></wbr>
使用 Android NDK 提供的工具链作为一个独立编译器现在是可能的。

This can be useful if you already have your own buildsystem,<wbr></wbr>
and only need to ability to invoke the cross-compiler to addsupport to Android for it.
如果你早已有你自己的生成系统的话,这可是有用的,
并且仅需要调用交叉编译器的能力来为它添加对 Android 的支持。
注:比如你有自己搭建的其它平台系统交叉编译环境的话。

A typical use case if invoking the 'configure' script of anopen-source library<wbr></wbr>
that expects a cross-compiler in the CC environmentvariable.
一个典型用例,假如调用一个开源库的 configure 脚本,要求一个交叉编译器在 CC 环境变量里。

This document explains how to do that:
本文档说明如何去做:

1/ Selecting your sysroot:
<wbr><wbr>选择你的 sysroot :</wbr></wbr>
--------------------------
注:我们可以在调用 gcc 时,给予 --sysroot=新路径,
  如此 gcc 就会改以 新路径 为参考目录,去搜寻所需的子例程和库等。
  ld 必需要在 configure 时,给予 --sysroot=新目录,
  新目录可以是任意目录,可以不是实际安装位置,主要目的是让 ld 启用 --sysroot 功能。

The first thing you need to know is which Android native APIlevel you want to target.
首先你需要知道你想要挑出哪个 Android 本地 API 级别 。

Each one of them provides a different variousAPIs,<wbr></wbr>
which are documented underdoc/STABLE-APIS.html,<wbr></wbr>
and correspond to the sub-directories of $NDK/platforms.
它们的每一个提供一个不同的多方面的 API ,是记录于 doc/STABLE-APIS.html 中,
并且对应于 $NDK/platforms 的子目录。

This allows you to define the path to your'sysroot',<wbr></wbr>
a GCC term for a directory containing the system headers andlibraries of your target.
这允许你来定义你的 sysroot 目录,一个 GCC 项包含你目标系统头文件和库的一个目录。

Usually, this will be something like:
通常,这将是有点像:

<wbr><wbr>SYSROOT=$NDK/platforms/android-&lt;level&gt;/arch-&lt;arch&gt;/</wbr></wbr>

Where <level> is the API levelnumber,<wbr></wbr>
and <arch> is the architecture("arm" being currently supported).<wbr></wbr>
<level> 是 API级别号,<arch> 是体系结构 (arm 是当前支持的)。

For example, if you're targetting Android 2.1 (a.k.a. Froyo),you would use:
例如,如果你是把 Android 2.1 作为目标(又叫做:Froyo),你将使用:

<wbr><wbr>SYSROOT=$NDK/platforms/android-8/arch-arm</wbr></wbr>


2/ Invoking the compiler (the hard way):
<wbr><wbr>调用编译器(难做的方式):</wbr></wbr>
----------------------------------------

Invoke the compiler using the --sysroot option to indicatewhere the system
files for the platform you're targetting are located. Forexample, do:
调用编译器使用 --sysroot 选项来指出你作为目标平台的系统文件位置。例如,给予:

<wbr><wbr> exportCC="$NDK/toolchains/&lt;name&gt;/prebuilt/&lt;system&gt;/bin/&lt;prefix&gt;gcc--sysroot=$SYSROOT"</wbr></wbr>
<wbr><wbr> $CC -o foo.o -cfoo.c</wbr></wbr>

Where <name> is the toolchain'sname, <system> is the host tag foryour system,
and <prefix> is atoolchain-specific prefix.<wbr></wbr>
<name> <wbr>工具链的名字<wbr></wbr></wbr>
<system> 你系统的主机标签
<prefix> 工具链特定的前缀

For example, if you are on Linux using the NDK r5 toolchain,you would use:
例如,假设你是在 Linux 上使用 NDK r5 工具链,你将使用:

<wbr><wbr> exportCC="$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc--sysroot=$SYSROOT"</wbr></wbr>

As you can see, this is rather verbose, but it works!
正如你所见,这是相当冗长,但它工作!

3/ Invoking the compiler (the easy way):
<wbr><wbr>调用编译器(容易的方式)</wbr></wbr>
----------------------------------------

The NDK allows you to create a "customized" toolchaininstallation to make life easier.<wbr></wbr>
NDK 允许你创建一个 定制的 工具链设置使生活更轻松。

For example, consider the following command:
例如,考虑如下命令:

<wbr>$NDK/build/tools/make-standalone-toolchain.sh --platform=android-5--install-dir=/tmp/my-android-toolchain</wbr>

This will create a directory named /tmp/my-android-toolchaincontaining a
copy of the android-5/arch-arm sysroot, and of the toolchainbinaries.
这将创建一个名为 /tmp/my-android-toolchain 的目录,
包含一个 android-5/arch-arm sysroot 和工具链二进制文件的拷贝。

You can later use it directly with something like:
你可以之后直接使用它,有点像这样:

<wbr><wbr>exportPATH=/tmp/my-android-toolchain/bin:$PATH</wbr></wbr>
<wbr><wbr>exportCC=arm-linux-androideabi-gcc</wbr></wbr>

Note that without the --install-diroption,<wbr></wbr>
make-standalone-toolchain.sh will create a/tmp/ndk/<toolchain-name>.tar.bz2 intarball.<wbr></wbr>
注意不用 --install-dir 选项,make-standalone-toolchain.sh 将用 tarball创建一个/tmp/ndk/<toolchain-name>.tar.bz2。

This allows you to archive and redistribute the binarieseasily.
这允许你容易地压缩和重新发行二进制文件。

Use --help for more options and details.
使用 --help 得到更多选项和细节。

IMPORTANT:<wbr></wbr>
重点:

The toolchain binaries do not depend or contain host-specificpaths,
in other words, they can be installed in anylocation,<wbr></wbr>
or even moved if you need to.
工具链二进制文件不依赖或包含宿主专一性的路径,
换句话说,它们可以安装在任意位置,或甚至移到你需要的地方。

NOTE:<wbr></wbr>
提示:

You can still use the --sysroot option with the newtoolchain,<wbr></wbr>
but it is now simply optional!
你可以依旧使用 --sysroot 选项用以新工具链,但是它现在只不过可选了!

4/ ABI Compatibility:
<wbr><wbr>ABI 兼容性:</wbr></wbr>
---------------------

The machine code generated by the toolchain should becompatible with
the official Android 'armeabi' ABI (seedocs/CPU-ARCH-ABIS.html) by default.
默认情况下,通过工具链产生的机器代码将兼容官方的 Android armeabiABI<wbr></wbr>
(参见 docs/CPU-ARCH-ABIS.html)。

It is recommended to use the -mthumb compiler flag to forcethe generation
of 16-bit Thumb-1 instructions (the default being 32-bit ARMones).
推荐使用 -mthumb 编译标志来强制 16位 Thumb-1 指令的产生 (默认是 32位 ARM)。

If you want to target the 'armeabi-v7a'ABI,<wbr></wbr>
you will need ensure that the following two flags are beingused:
如果你想要把 armeabi-v7a ABI 作为目标,你将需要确保如下两个标志是已使用:

<wbr> CFLAGS='-march=armv7-a-mfloat-abi=softfp'</wbr>

Note:<wbr></wbr>
提示:

The first flag enables Thumb-2instructions,<wbr></wbr>
and the second one enables H/W FPUinstructions<wbr></wbr>
while ensuring that floating-point parameters are passed incore registers,<wbr></wbr>
which is critical for ABIcompatibility.<wbr></wbr>
第一个标志启用 Thumb-2 指令,且第二个标志启用硬件浮点单元指令,
在确保浮点参数用内核寄存器传递时 ABI 兼容性是关键的。

Do *not* use these flags separately!
不要分开使用这些标志!

If you want to use NEON instructions, you will need one morecompiler flag:
如果你想要使用 NEON 指令,你将需要一个编译器标志:

<wbr> CFLAGS='-march=armv7-a -mfloat-abi=softfp-mfpu=neon'</wbr>

Note that this forces the use of VFPv3-D32, as per the ARMspecification.
注意这个标志强制 VFPv3-D32 的使用,依据 ARM 规范。

Also, is *required* to use the following linker flags thatroutes around
a CPU bug in some Cortex-A8 implementations:
同样,需要使用如下链接器标志在某些 Cortex-A8 实现中绕过一个 CPU 问题:

<wbr> LDFLAGS='-Wl,--fix-cortex-a8'</wbr>

If none of the above makes sense toyou,<wbr></wbr>
it's probably better not to use the standalonetoolchain,<wbr></wbr>
and stick to the NDK build systeminstead,<wbr></wbr>
which will handle all the details for you.
如果上述的对你毫无感觉,或许最好不使用独立工具链,固守 NDK 生成系统,它将为你处理全部细节。

5/ Warnings and Limitations:
<wbr><wbr>警告和限制:</wbr></wbr>
--------------------------

5.1/ Windows support:
<wbr><wbr><wbr>Windows 支持:</wbr></wbr></wbr>
- - - - - - - - - - -

The Windows binaries do *not* depend onCygwin.<wbr></wbr>
Windows 二进制文件不依赖 Cygwin 。

The good news is that they are thusfaster,<wbr></wbr>
the bad news is that they do not understand the Cygwin
path specification like /cygdrive/c/foo/bar (instead ofC:/foo/bar).
好消息是它们因此更快,坏消息是它们不能理解 Cygwin 路径规范,
像 /cygdrive/c/foo/bar (代替 C:/foo/bar)。

The NDK build system ensures that all paths passed to thecompiler from Cygwin
are automatically translated,<wbr></wbr>
and deals with other horrors for you.<wbr></wbr>
NDK 生成系统确保全部路径从 Cygwin 传递到编译器是自动地翻译了,并且为你处理其它令人讨厌的事。

If you have a custom build system,<wbr></wbr>
you may need to deal with the problem yourself.
如果你有一个自定义生成系统,你可能需要自己去处理问题。

NOTE:<wbr></wbr>
注意:

There is no plan to support Cygwin / MSys at themoment,<wbr></wbr>
but contributions are welcome.<wbr></wbr>
目前没有计划去支持 Cygwin 或 MSys ,但是欢迎贡献。

Contact the android-ndk forum for details.
联系 android-ndk 论坛了解细节。

5.2/ wchar_t support:
<wbr><wbr><wbr>wchar_t 支持:</wbr></wbr></wbr>
- - - - - - - - - - -

As documented,<wbr></wbr>
the Android platform did not really support wchar_t untilAndroid 2.3.<wbr></wbr>
正如记载的,Android 平台不真正地支持 wchar_t 直到 Android 2.3 。

What this means in practical terms is that:
在实际中这意味着:

<wbr> - If your target platform is android-9 orhigher,<wbr></wbr></wbr>
<wbr><wbr> the size of wchar_t is 4bytes,<wbr></wbr></wbr></wbr>
<wbr><wbr> and most wide-charfunctions are available in the C library</wbr></wbr>
<wbr><wbr> (with the exception ofmulti-byte encoding/decoding functions and wsprintf/wsscanf).</wbr></wbr>
<wbr><wbr> 如果你的目标平台是 android-9或更高的话,wchar_t 是 4 字节大小,</wbr></wbr>
<wbr><wbr> 那么在 C库中有大部分的宽字符函数是可用的。</wbr></wbr>

<wbr> - If you target any prior APIlevel,<wbr></wbr></wbr>
<wbr><wbr> the size of wchar_t willbe 1 byte and none of the wide-char functions will workanyway.</wbr></wbr>
<wbr><wbr> 如果你把任何之前 API级别作为目标的话,wchar_t 的大小将是 1 字节,</wbr></wbr>
<wbr><wbr>那么不论以何种方式没有宽字符函数将工作。</wbr></wbr>

We recommend any developer to get rid of any dependencies onthe wchar_t type
and switch to better representations.<wbr></wbr>
我们推荐任何的开发者从任何的 wchar_t 类型依赖中摆脱,然后转变为更好的表示。

The support provided in Android is only there to help youmigrate existing code.
Android 提供的支持是仅在这里帮助你迁移现存代码。

5.3/ Exceptions, RTTI and STL:
<wbr><wbr><wbr>例外,运行时信息和 STL :</wbr></wbr></wbr>
- - - - - - - - - - - - - - -

The toolchain binaries *do* support C++ exceptions and RTTI bydefault.
在默认情况下工具链二进制文件支持 C++ 例外和运行时信息。

They are enabled by default,<wbr></wbr>
so use -fno-exceptions and -fno-rtti if you want to disablethem<wbr></wbr>
when building sources with them (e.g. to generate smallermachine code).
它们默认是启用的,所以如果你想要禁用它们在生成源文件时使用 -fno-exceptions 和 -fno-rtti。
(例如:产生更小机器代码)

NOTE:<wbr></wbr>
注意:

You will need to explicitely link with libsupc++ if you usethese features.<wbr></wbr>
如果你使用这些功能的话,你将需要显示链接 libsupc++ 。

To do this, use -lsupc++ when linking binaries, as in:
要这样做,在链接二进制文件时使用 -lsupc++ ,如用:

<wbr><wbr>arm-linux-androideabi-g++ .... -lsupc++</wbr></wbr>

The toolchain also comes with a working GNU libstdc++implementation,<wbr></wbr>
which provides a working C++ Standard Template Libraryimplementation.<wbr></wbr>
工具链同样带来一个有效的 GNU libstdc++ 实现,提供有效的 C++ 标准模板库实现。

You will need to explicitely link against -lstdc++ to useit.
你将需要显示链接 -lstdc++ 来使用它。

Proper toolchain configuration to avoid these explicit linkflags is planned for the future.
对于将来严格意义上的工具链配置避免这些显示链接标志是有计划的。

分享到:
评论

相关推荐

    高分项目 基于STM32F103单片机的无线测距系统源代码+项目资料齐全+教程文档.zip

    【资源概览】 高分项目 基于STM32F103单片机的无线测距系统源代码+项目资料齐全+教程文档.zip高分项目 基于STM32F103单片机的无线测距系统源代码+项目资料齐全+教程文档.zip高分项目 基于STM32F103单片机的无线测距系统源代码+项目资料齐全+教程文档.zip 【资源说明】 高分项目源码:此资源是在校高分项目的完整源代码,经过导师的悉心指导与认可,答辩评审得分高达95分,项目的质量与深度有保障。 测试运行成功:所有的项目代码在上传前都经过了严格的测试,确保在功能上完全符合预期,您可以放心下载并使用。 适用人群广泛:该项目不仅适合计算机相关专业(如电子信息、物联网、通信工程、自动化等)的在校学生和老师,还可以作为毕业设计、课程设计、作业或项目初期立项的演示材料。对于希望进阶学习的小白来说,同样是一个极佳的学习资源。 代码灵活性高:如果您具备一定的编程基础,可以在此代码基础上进行个性化的修改,以实现更多功能。当然,直接用于毕业设计、课程设计或作业也是完全可行的。 欢迎下载,与我一起交流学习,共同进步!

    java八股文介绍00002

    java八股文,"Java八股文"通常指的是在面试Java开发者时经常被问到的一系列标准问题,这些问题往往是技术面试中的基础部分,用来评估应聘者对Java编程语言和Java虚拟机(JVM)的理解程度。这些问题的答案往往模式化,因此被称为“八股文”。虽然这个词汇带有一定的贬义,但是这些问题却是面试中不可或缺的一部分,因为它们能够快速地检验应聘者的基本技能和理论知识。

    东北大学本科毕业设计 论文latex模板 2019

    东北大学本科毕业设计 论文latex模板 2019 关于东北大学本科毕业设计论文的LaTeX模板,您可以参考以下两个资源: 1. **Acytoo/neu_bachelor_thesis_template**: 这个模板是修改自一位学长的模板,以适应东北大学最新的要求。它使用GBT7714-2005参考文献标准,并提供了详细的安装和使用说明。您需要使用xelatex进行编译,并可能需要手动安装参考文献的标准。此外,如果您使用的是VSCode编辑器,可以参考提供的VSCode配置。 2. **tzaiyang/NEUBachelorThesis**: 这个模板同样适用于东北大学本科生毕业论文。它提供了详细的VSCode配置,包括快捷键设置和texcount bug修复(仅限Windows用户)。此外,还提供了如何插入公式、图片和三线表的说明,以及如何引用参考文献的方法。 您可以根据自己的需求和喜好选择其中一个模板。如果您对LaTeX不熟悉,建议先学习一些基础知识,以便更好地使用这些模板。祝您毕业设计顺利!

    node-v7.2.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    串口通讯原理+硬件原理解释+软件配置

    STM32串口通信大纲---适用于初学者 I. 引言 学习背景与串口通信的重要性 简述本文目的与主要内容 II. STM32里的串口通信 基本概念与功能介绍 USART及STM32内置串口 全双工通信与异步时钟控制 接收/发送逻辑结构 III. 串口配置 选择合适的串口资源(USART1/2/3) 参数设置:波特率、位数、校验、停止位 GPIO配置:TX/RX引脚驱动方式 IV. 串口发送与接收 发送数据流程 设置TDR与发送移位寄存器 检测TXE标志位 数据移位与持续发送 接收数据流程 配置RX输入模式 读取RDR与RXNE标志 字节数据接收 V. 实现方式 不使用中断的简单示例 利用中断接收数据 查询中断状态 中断服务程序处理数据

    基于opencv和深度学习的手写计算器.zip

    基于opencv和深度学习的手写计算器.zip

    高分项目 基于STM32单片机和Android的智能蓝牙点餐系统源代码+项目资料齐全+教程文档.zip

    【资源概览】 高分项目 基于STM32单片机和Android的智能蓝牙点餐系统源代码+项目资料齐全+教程文档.zip高分项目 基于STM32单片机和Android的智能蓝牙点餐系统源代码+项目资料齐全+教程文档.zip高分项目 基于STM32单片机和Android的智能蓝牙点餐系统源代码+项目资料齐全+教程文档.zip 【资源说明】 高分项目源码:此资源是在校高分项目的完整源代码,经过导师的悉心指导与认可,答辩评审得分高达95分,项目的质量与深度有保障。 测试运行成功:所有的项目代码在上传前都经过了严格的测试,确保在功能上完全符合预期,您可以放心下载并使用。 适用人群广泛:该项目不仅适合计算机相关专业(如电子信息、物联网、通信工程、自动化等)的在校学生和老师,还可以作为毕业设计、课程设计、作业或项目初期立项的演示材料。对于希望进阶学习的小白来说,同样是一个极佳的学习资源。 代码灵活性高:如果您具备一定的编程基础,可以在此代码基础上进行个性化的修改,以实现更多功能。当然,直接用于毕业设计、课程设计或作业也是完全可行的。 欢迎下载,与我一起交流学习,共同进步!

    高分项目 基于STM32单片机的桌面电磁力时钟摆设计源代码+项目资料齐全+教程文档.zip

    【资源概览】 高分项目 基于STM32单片机的桌面电磁力时钟摆设计源代码+项目资料齐全+教程文档.zip高分项目 基于STM32单片机的桌面电磁力时钟摆设计源代码+项目资料齐全+教程文档.zip高分项目 基于STM32单片机的桌面电磁力时钟摆设计源代码+项目资料齐全+教程文档.zip 【资源说明】 高分项目源码:此资源是在校高分项目的完整源代码,经过导师的悉心指导与认可,答辩评审得分高达95分,项目的质量与深度有保障。 测试运行成功:所有的项目代码在上传前都经过了严格的测试,确保在功能上完全符合预期,您可以放心下载并使用。 适用人群广泛:该项目不仅适合计算机相关专业(如电子信息、物联网、通信工程、自动化等)的在校学生和老师,还可以作为毕业设计、课程设计、作业或项目初期立项的演示材料。对于希望进阶学习的小白来说,同样是一个极佳的学习资源。 代码灵活性高:如果您具备一定的编程基础,可以在此代码基础上进行个性化的修改,以实现更多功能。当然,直接用于毕业设计、课程设计或作业也是完全可行的。 欢迎下载,与我一起交流学习,共同进步!

    node-v7.9.0-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于深度学习的手写数字识别.zip

    基于深度学习的手写数字识别.zip

    Parameter-Free Fast Pixelwise Non-Local Means Denoising

    这篇文章的核心内容是关于一种图像去噪算法——非局部均值(Non-Local Means, NLM)算法的快速且开源的实现。以下是文章的主要要点: 算法介绍:文章提出了一种快速且无参数的NLM算法实现,该算法用于去除图像中的噪声。NLM算法由Antoni Buades, Bartomeu Coll和Jean-Michel Morel在2005年引入,因其简单性、出色的视觉效果以及利用自然图像的非局部冗余性而受到广泛欢迎。 算法改进:文章基于线之和的计算来计算块距离,这些线在块移位下是不变的。通过从一个图像数据库中计算NLM的最佳参数(以平均峰值信噪比PSNR为标准),实现了一个无需参数调整的NLM算法。

    Hypack 2016、Hypack 2021、Hypack 2022、Hypack 2024 完整中文资源

    Hypack 2016、Hypack 2021、Hypack 2022、Hypack 2024 四个版本的完整中文资源,全部完成汉化,汉化完整错误少,全网汉化第一,替换相应版本的资源文件即可。 压缩包含资源文件lngEdit.db和汉化了的lngEdit.exe程序(命名为lngEditChs.exe)

    selenium 库和浏览器驱动的安装.rar

    selenium 库和浏览器驱动的安装.rar

    预警系统链性态网体系化作战矩阵.txt

    预警系统链性态网体系化作战矩阵.txt

    基于深度学习的普通话语音识别.zip

    基于深度学习的普通话语音识别.zip

    node-v7.1.0-sunos-x86.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    com.smile.gifmaker.apk

    com.smile.gifmaker.apk

    改进模拟退火算法模型中英文版.vsdx

    模拟退火算法(Simulated Annealing,SA)是一种基于概率的算法,其灵感来源于固体退火原理。模拟退火算法最早由N. Metropolis等人在1953年提出,随后在1983年由S. Kirkpatrick等人成功地将退火思想引入到组合优化领域。该算法基于物理中固体物质的退火过程与一般组合优化问题之间的相似性,通过赋予搜索过程一种时变且最终趋于零的概率突跳性,从而有效避免陷入局部极小并最终趋于全局最优。 模拟退火算法的基本思想是从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解。算法的主要步骤如下: 初始化:设置初始温度T(充分大)、初始解状态S(算法迭代的起点)以及每个T值的迭代次数L。 对k=1,...,L进行以下操作: 产生新解S':通过对当前解进行变换(如互换、置换等)产生新解。 计算增量ΔT=C(S')-C(S),其中C(S)为评价函数。 判断新解是否接受:若ΔT<0,则接受S'作为新的当前解;否则以概率exp(-ΔT/T)接受S'作为新的当前解。 如果满足终止条件(如连续若干个新解都没有被接受),则输出当前解

    2023年广西中小学生程序设计挑战赛初赛(入门组)试题及答案.pdf

    2023年广西中小学生程序设计挑战赛初赛(入门组)试题及答案.pdf

    基于深度学习的近红外光谱数据回归分析模型.zip

    基于深度学习的近红外光谱数据回归分析模型.zip

Global site tag (gtag.js) - Google Analytics