当前位置:首页 » 操作系统 » lzma源码

lzma源码

发布时间: 2022-11-19 22:00:45

A. 关于LZMA压缩算法的用法,怎样集成到应用程序中

string[] arm = { "e", "D: \\temp\\log.rtf", "D: \\temp\\log.7z"};
// string[] arm = { "b", "D: \\temp\\lo.7z", "D: \\temp\\log_2232.txt",}; //, -d21, -fb32, -mfbt4
LzmaAlone.Main1(arm);

B. windows中type命令的源码是什么

DOS系统命令都能用输入command能查看面命令 环境变量PATH面应用程序名作命令用
面总结些东西内容太

关某命令详细信息请键入 HELP 命令名

XP.CMD命令全

关某命令详细信息请键入 HELP 命令名ASSOC 显示或修改文件扩展名关联AT 计划计算机运行命令程序ATTRIB 显示或更改文件属性BREAK 设置或清除扩展式 CTRL+C 检查CACLS 显示或修改文件访问控制列表(ACLs)CALL 另批处理程序调用CD 显示前目录名称或其更改CHCP 显示或设置代码页数CHDIR 显示前目录名称或其更改CHKDSK 检查磁盘并显示状态报告CHKNTFS 显示或修改启间磁盘检查CLS 清除屏幕CMD 打另 Windows 命令解释程序窗口COLOR 设置默认控制台前景背景颜色COMP 比较两或两套文件内容COMPACT 显示或更改 NTFS 区文件压缩CONVERT FAT 卷转换 NTFS您能转换前驱器COPY 至少文件复制另位置DATE 显示或设置期DEL 删除至少文件DIR 显示目录文件目录DISKCOMP 比较两软盘内容DISKCOPY 软盘内容复制另软盘DOSKEY 编辑命令行、调用 Windows 命令并创建宏ECHO 显示消息或命令显打或关ENDLOCAL 结束批文件环境更改本化ERASE 删除至少文件EXIT 退 CMD.EXE 程序(命令解释程序)FC 比较两或两套文件并显示同处FIND 文件搜索文字字符串FINDSTR 文件搜索字符串FOR 套文件每文件运行指定命令FORMAT 格式化磁盘便跟 Windows 使用FTYPE 显示或修改用于文件扩展名关联文件类型GOTO Windows 命令解释程序指向批处理程序某标明行GRAFTABL 启用 Windows 图像模式显示扩展字符集HELP 提供 Windows 命令帮助信息IF 执行批处理程序条件性处理LABEL 创建、更改或删除磁盘卷标MD 创建目录MKDIR 创建目录MODE 配置系统设备MORE 显示结屏幕MOVE 文件目录移另目录PATH 显示或设置执行文件搜索路径PAUSE 暂停批文件处理并显示消息POPD 原 PUSHD 保存前目录值PRINT 打印文本文件PROMPT 更改 Windows 命令提示符PUSHD 保存前目录其进行更改RD 删除目录RECOVER 问题磁盘恢复读信息REM 记录批文件或 CONFIG.SYS 注释REN 重命名文件RENAME 重命名文件REPLACE 替换文件RMDIR 删除目录SET 显示、设置或删除 Windows 环境变量SETLOCAL 始批文件环境更改本化SHIFT 更换批文件替换参数位置SORT 输入进行类START 启另窗口运行指定程序或命令SUBST 路径跟驱器号关联TIME 显示或设置系统间TITLE 设置 CMD.EXE 窗口标题TREE 图形模式显示驱器或路径目录结构TYPE 显示文本文件内容VER 显示 Windows 版本VERIFY 告诉 Windows 否验证文件否已确写入磁盘VOL 显示磁盘卷标序列号XCOPY 复制文件目录树

appwiz.cpl------------添加删除程序
control userpasswords2--------用户帐户设置
cleanmgr-------垃圾整理
CMD--------------命令提示符作 Windows 附件PingConvert 些能图形环境 使用功能要借助完
cmd------jview察看Java虚拟机版本

command.com------调用则系统内置 NTVDM DOS虚拟机完全类似 Virtual PC 虚拟环境系统本身联系我命令提示符运行 DOS 程序实际 自转移 NTVDM虚拟机 CMD 本身没关系

calc-----------启计算器
chkdsk.exe-----Chkdsk磁盘检查
compmgmt.msc---计算机管理
conf-----------启 netmeeting
control userpasswords2-----User Account 权限设置
devmgmt.msc--- 设备管理器
diskmgmt.msc---磁盘管理实用程序
dfrg.msc-------磁盘碎片整理程序
drwtsn32------ 系统医
dvdplay--------启Media Player
dxdiag-----------DirectX Diagnostic Tool
gpedit.msc-------组策略编辑器
gpupdate /target:computer /force 强制刷新组策略
eventvwr.exe-----事件查看器
explorer-------打资源管理器
logoff---------注销命令
lusrmgr.msc----本机用户组
msinfo32---------系统信息
msconfig---------系统配置实用程序
net start (servicename)----启该服务
net stop (servicename)-----停止该服务
notepad--------打记事本
nusrmgr.cpl-------同control userpasswords打用户帐户控制面板
Nslookup-------IP址侦测器
oobe/msoobe /a----检查XP否激
perfmon.msc----计算机性能监测程序
progman--------程序管理器
regedit----------注册表编辑器
regedt32-------注册表编辑器
regsvr32 /u *.dll----停止dll文件运行
route print------查看路由表
rononce -p ----15秒关机
rsop.msc-------组策略结集
rundll32.exe rundll32.exe %Systemroot%System32shimgvw.dll,ImageView_Fullscreen----启空白Windows 图片传真查看器
secpol.msc--------本安全策略
services.msc---本服务设置
sfc /scannow-----启系统文件检查器
sndrec32-------录音机
taskmgr-----任务管理器(适用于2000/xp/2003)
tsshutdn-------60秒倒计关机命令
winchat--------XP自带局域网聊
winmsd---------系统信息
winver-----显示About Windows 窗口
wupdmgr-----------Windows Update
一,编译之前的准备。
1) 了解代码组织结构。
Chrome source非常庞大,并且在其主目录下还包含有工具和组件,任何一个工具和组件也附带有其源代码。首先得熟悉这些源代码的组织结构,在中包含如下子目录:releases,曾经发布过的chrome源代码的正式版本;trunk,当前最新的源代码。由于releases中的代码比较旧,这里就不做说明了,只说明trunk的结构。在trunk下面有3个重要的目录,deps包含了chrome编译和运行所需要的全部组件的代码。src里面包含的则是chrome的主程序的代码,tools包含的是下载和配置编译所需要的第三方工具的压缩包和源代码,其中就有svn和python这2个比较重要的工具,后面再详细介绍。暂时做这样一个简单的介绍,因为其组织结构比较负责,以后再作补充斧正。

2)如何下载和同步源代码。
首先谈谈下载:
1,最简单的方法是从chrome官网上直接下载源代码压缩包,地址是。

2,或者采用svn从trunk/src这个地方heckout,这要求你先在本地建一个源代码的主目录。

3,另外一个办法则是采用google提供的一个部署工具depot_tools。虽然这几种办法都可下载完整的源代码,但目前的情况是:chrome基于Visual Stdio 2005 进行编译,如果顺利完成编译工作,自然少不了sln文件,较早的源代码中包含有现成的sln和vcproject文件,但后来做了修改,这些文件被抛弃掉,Google自己开发了一种脚本工具叫做GYP,这个工具采用python编写,GYP采用了自定义的一套规则,用于生成各种工程文件。而关键的python则包含于depot_tools中,因此不论采用什么方法下载的代码,都得下载depot_tools这个工具,以获得必须的工程文件。
depot_tools位于 trunk/tools 下面,包括一个目录和一个zip格式的压缩包。

3)关于编译器
前面提到Chrome采用Visual Stdio 2005进行编译,根据的说明,需进行如下操作正常编译
a, 安装Visual Studio 2005.
b, 安装Visual Studio 2005 Service Packe 1.
c, 安装Visual Studio Hotfix 947315.
d, 如果是vista系统,还需安装Visual Studio 2005 Service Packe 1 Update for Windows Vista.
e, 安装Windows 2008 SDK,如果是Visual Studio 2008则不需要这一步。
f, 配置Windows 2008 SDK,使2008 SDK成为首选开发库,以获得一些新功能和特性。办法是在开始->程序->Microsoft Windows SDK v6.1 > Visual Studio Registration > Windows SDK Configuration Tool,选择make current按钮。也可以在VS里面手动配置include和libary路径,效果是一样的。

二,如何配置工程文件
1,如果是采用depot_tools,那么从代码下载到生成sln文件会自动完成。其步骤是
(1)下载depot_tools到本地存储,假设位于d:/depot_tools.
(2)将d:/depot_tools添加到系统环境变量中。
(3)创建一个源代码根目录,假设为 d:/chrome,目录不得包含空格。
(4)在命令行下切换当前目录到d:/chrome。
(5)执行命令 gclient config trunk/src ,该命令会首先下载svn和python分别到d:/depot_tools/svn_bin和d:/depot_tools/python_bin。
(6)执行命令 gclient sync 这个命令会调用svn同步源代码。这个过程会比较漫长。全部完成之后全部源代码就保存在d:/chrome里面。未编译的代码大约有4个G左右,过程将十分漫长。这样获得的源代码已经包含所有的工程文件,可直接打开。

重点说明一下gclient,它实际上是一个批处理文件,它主要做了如下一些事情,首先设置环境变量,如代码根目录,工具根目录等。其次调用win_tools.bat从服务器下载svn和python。最后调用python.exe对Chrome.gyp进行解析生成所有工程文件。
另外需要说明的是,gclient sync的过程非常漫长,根据命令行的提示来看总共需要同步67个项目(不是工程),期间可能会因为一些原因导致错误而退出这个过程,需要继续调用sync。比如网络出现故障svn会多次进入sleep状态然后重试,如果多次失败就会报错退出,还有的情况是某些子目录的属性问题无法同步,可根据提示进行操作。还有个目前新出现的问题,下面2个目录“src/webkit/data/layout_tests/LayoutTests”和“src/third_party/WebKit/LayoutTests”的源代码是从src.webkit.org签出来的,但是这个网站目前存在问题无法签出代码, 需要屏蔽掉这2个目录,由于里面是测试代码,即使丢弃也不会影响整个工程的编译,方法是打开trunk下面的.gclient文件,向里面添加如下内容
"custom_deps" : {
"src/webkit/data/layout_tests/LayoutTests":None,
"src/third_party/WebKit/LayoutTests":None肠川惯缎甙等轨劝憨滑,
},

这样svn就能完成代码的同步了。最后gclient会调用depot_tools/python_bin/python.exe 对 src/build/gyp_
chromium进行处理,这样就得到了所有的sln和vcproject文件。

2,如果是下载的代码压缩包或者checkout的代码,代码目录里面没有sln文件,这个时候需要调用命令行进入源代码根目录,然后执行命令 gclient runhooks --force,命令执行后会直接对Chrome.gyp进行解析,生成sln文件。

在实际下载过程中,最开始的时候我用TortoiseSVN从trunk/src checkout源代码,但是得到的代码只有几百兆,执行gclient runhooks --force命令后也没有找到sln文件,具体原因未知,不建议使用此方式。而直接下载代码压缩包的方式没有尝试过,不知道是否可行。因此最稳妥的方法还是使用depot_tools来部署和处理源代码。

三 编译工程
启动Visual Studio 2005打开 src/chrome/browser/chrome.sln,或者打开src/build/all.sln,如果打开的是chrome.sln里面包含480个工程,而all.sln则包含507个工程,一些09年的编译说明提到有300左右的工程,可见chrome的代码变动比较大。对整个解决方案进行编译,打开需要2个小时才能完成编译,视硬件环境而定,内存越大越快,推荐4G以上内存,酷睿2核或者4核。编译完成以后据说会占用30G的空间。编译后的文件位于 d:/chorme/chrome/debug 目录或者 d:/chorme/chrome/release目录下。

四 chrome涉及的开源项目

Chrome 采用了很多开源项目,这里把它们列出来以备后用,目前Chrome涉及25个开源代码:
1、Google Breakpad
/src/breakpad
开源的跨开台程序崩溃报告系统。
2、Google URL
/src/googleurl
Google小巧的URL解析整理库。
3、Skia
/src/skia
矢量图引擎。
4、Google v8
/src/v8
Google开源的JavaScript引擎。V8实现了ECMA-262第三版的ECMAScript规范,可运行于Windows XP 和 Vista, Mac OS X 10.5 (Leopard), 及 linux等基于IA-32 或 ARM 的系统之上。V8可单独运行也可嵌入到任何C++程序中。
5、Webkit
/src/webki
开源的浏览器引擎
6、Netscape Portable Runtime (NSPR)
/src/base/third_party/nspr
Netscape Portable Runtime (NSPR) 提供了系统级平台无关的API及类似libc的函数。
7、Network Security Services (NSS)
/src/base/third_party/nss
Network Security Services (NSS) 一套用于支持服务器端与客户端安全开发的跨平台函数库。程序通过NSS可支持SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 认证及其它一些安全标准。
8、Hunspell
/src/chrome/third_party/hunspell
Spell checker and morphological analyzer library and program designed for languages with rich morphology and complex word compounding or character encoding.
9、Windows Template Library
/src/chrome/third_party/wtl
用于开发Windows程序与UI组件的C++ library。WTL扩展了ATL (Active Template Library) 并提供一套用于controls, dialogs, frame windows, GDI objects等开发的类。
10、Google C++ Testing Framework
/src/testing/gtest
Google用于编写C++测试的基于xUnit架构的框架,可用于多种平台上:Linux, Mac OS X, Windows, Windows CE, and Symbian。支持自动测试发现,有一套丰富的Assertions断言,用于可自定义断言,death tests, fatal and non-fatal failures, various options for running the tests, and XML test report generation.
11、bsdiff 与 bspatch
/src/third_party/bsdiff 及 /src/third_party/bspatch
bsdiff 与 bspatch 用于为二进制文件生成补丁。
12、bzip2
/src/third_party/bzip2
bzip2使用Burrows-Wheeler block sorting text compression 算法与Huffman编码压缩文件。
13、International Components for Unicode (ICU)
/src/third_party/icu38
ICU是一套成熟并被广泛使用的C/C++ 及 Java 库,可为软件提供Unicode与全球化支持。
14、libjpeg
/src/third_party/libjpeg
用于处理JPEG (JFIF)图像格式的库。
15、libpng
/src/third_party/libpng
PNG图像格式库。支持绝大部分的PNG特性,可扩展。已经被广泛地使用了13年以上了。
16、libxml
/src/third_party/libxml
C语言的XML解析库。
17、libxslt
/src/third_party/libxslt
C语言的XSLT库。
18、LZMA
/src/third_party/lzma_sdk
LZMA为7-Zip软件中7z格式压缩所使用的压缩算法,有很好的压缩效果。
19、stringencoders
/src/third_party/modp_b64
一系列高性能的c-string转换函数,比如:base 64 encoding/decoding。通常比其标准实现快两倍以上。
20、Netscape Plugin Application Programming Interface (NPAPI)
/src/third_party/npapi
多种浏览器使用的跨平台插件架构。
21、Pthreads-w32
/src/third_party/pthread
用于编写多线程程序的API
22、SCons - a software construction tool
/src/third_party/scons
开源的软件构建工具——下一代的编译工具。可以认为SCons是改进过的跨平台配上autoconf/automake与ccache的Make工具的子系统。
23、sqlite
/src/third_party/sqlite
大名鼎鼎的嵌入式数据库引擎。自管理、零配置、无需服务器、支持事务。
24、TLS Lite
/src/third_party/tlslite
SSL 3.0, TLS 1.0, and TLS 1.1的Python免费实现库。TLS Lite支持这些安全验证方式:SRP, shared keys, and cryptoIDs in addition to X.509 certificates。注:Chrome并不包涵Python。TLS Lite用于Chrome开发过程中的代码覆盖、依赖检查、网页加载时间测试及生成html结果比较等。
25、zlib
/src/third_party/zlib
zlib为一套用于任意平台与机器的无损数据压缩的库,它免费、自由、无任何法律专利问题。

C. linux tar 不支持 lzma 如何添加呢

gnu tar的1.26版本开始支持lzma和xz压缩,下载tar源码编译安装就行了

D. 吐血整理:C++编程语言资源汇总

关于 C++ 框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。有需要的小伙伴可以收藏一下!

C++标准库,包括了STL容器,算法和函数等。

C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。

Standard Template Library:标准模板库

C POSIX library : POSIX系统的C标准库规范

ISO C++ Standards Committee :C++标准委员会


C++通用框架和库

Apache C++ Standard Library:是一系列算法,容器,迭代器和其他基本组件的集合

ASL :Adobe源代码库提供了同行的评审和可移植的C++源代码库。

Boost :大量通用C++库的集合。

BDE :来自于彭博资讯实验室的开发环境。

Cinder:提供专业品质创造性编码的开源开发社区。

Cxxomfort:轻量级的,只包含头文件的库,将C++ 11的一些新特性移植到C++03中。

Dlib:使用契约式编程和现代C++ 科技 设计的通用的跨平台的C++库。

EASTL :EA-STL公共部分

ffead-cpp :企业应用程序开发框架

Folly:由Facebook开发和使用的开源C++库

JUCE :包罗万象的C++类库,用于开发跨平台软件

libPhenom:用于构建高性能和高度可扩展性系统的事件框架。

LibSourcey :用于实时的视频流和高性能网络应用程序的C++11 evented IO

LibU : C语言写的多平台工具库

Loki :C++库的设计,包括常见的设计模式和习语的实现。

MiLi :只含头文件的小型C++库

openFrameworks :开发C++工具包,用于创意性编码。

Qt :跨平台的应用程序和用户界面框架

Reason :跨平台的框架,使开发者能够更容易地使用Java,.Net和Python,同时也满足了他们对C++性能和优势的需求。

ROOT :具备所有功能的一系列面向对象的框架,能够非常高效地处理和分析大量的数据,为欧洲原子能研究机构所用。

STLport:是STL具有代表性的版本

STXXL:用于额外的大型数据集的标准模板库。

Ultimate++ :C++跨平台快速应用程序开发框架

Windows Template Library:用于开发Windows应用程序和UI组件的C++库

Yomm11 :C++11的开放multi-methods.


btsk : 游戏 行为树启动器工具

Evolving Objects:基于模板的,ANSI C++演化计算库,能够帮助你非常快速地编写出自己的随机优化算法。

Neu:C++11框架,编程语言集,用于创建人工智能应用程序的多用途软件系统。


Boost.Asio:用于网络和底层I/O编程的跨平台的C++库。

libev :功能齐全,高性能的时间循环,轻微地仿效libevent,但是不再像libevent一样有局限性,也修复了它的一些bug。

libevent :事件通知库

libuv :跨平台异步I/O。


音频,声音,音乐,数字化音乐库

FMOD :易于使用的跨平台的音频引擎和音频内容的 游戏 创作工具。

Maximilian :C++音频和音乐数字信号处理库

OpenAL :开源音频库—跨平台的音频API

Opus:一个完全开放的,免版税的,高度通用的音频编解码器

Speex:免费编解码器,为Opus所废弃

Tonic: C++易用和高效的音频合成

Vorbis: Ogg Vorbis是一种完全开放的,非专有的,免版税的通用压缩音频格式。


生物信息,基因组学和生物技术

libsequence:用于表示和分析群体遗传学数据的C++库。

SeqAn:专注于生物数据序列分析的算法和数据结构。

Vcflib :用于解析和处理VCF文件的C++库

Wham:直接把联想测试应用到BAM文件的基因结构变异。


压缩和归档库

bzip2:一个完全免费,免费专利和高质量的数据压缩

doboz:能够快速解压缩的压缩库

PhysicsFS:对各种归档提供抽象访问的库,主要用于视频 游戏 ,设计灵感部分来自于Quake3的文件子系统。

KArchive:用于创建,读写和操作文件档案(例如zip和 tar)的库,它通过QIODevice的一系列子类,使用gzip格式,提供了透明的压缩和解压缩的数据。

LZ4 :非常快速的压缩算法

LZHAM :无损压缩数据库,压缩比率跟LZMA接近,但是解压缩速度却要快得多。

LZMA :7z格式默认和通用的压缩方法。

LZMAT :及其快速的实时无损数据压缩库

miniz:单一的C源文件,紧缩/膨胀压缩库,使用zlib兼容API,ZIP归档读写,PNG写方式。

Minizip:Zlib最新bug修复,支持PKWARE磁盘跨越,AES加密和IO缓冲。

Snappy :快速压缩和解压缩

ZLib :非常紧凑的数据流压缩库

ZZIPlib:提供ZIP归档的读权限。


并发执行和多线程

Boost.Compute :用于OpenCL的C++GPU计算库

Bolt :针对GPU进行优化的C++模板库

C++React :用于C++11的反应性编程库

Intel TBB :Intel线程构件块

Libclsph:基于OpenCL的GPU加速SPH流体仿真库

OpenCL :并行编程的异构系统的开放标准

OpenMP:OpenMP API

Thrust :类似于C++标准模板库的并行算法库

HPX :用于任何规模的并行和分布式应用程序的通用C++运行时系统

VexCL :用于OpenCL/CUDA 的C++向量表达式模板库。


C++ B-tree :基于B树数据结构,实现命令内存容器的模板库

Hashmaps: C++中开放寻址哈希表算法的实现


Bcrypt :一个跨平台的文件加密工具,加密文件可以移植到所有可支持的操作系统和处理器中。

BeeCrypt:

Botan: C++加密库

Crypto++:一个有关加密方案的免费的C++库

GnuPG: OpenPGP标准的完整实现

GnuTLS :实现了SSL,TLS和DTLS协议的安全通信库

Libgcrypt

libmcrypt

LibreSSL:免费的SSL/TLS协议,属于2014 OpenSSL的一个分支

LibTomCrypt:一个非常全面的,模块化的,可移植的加密工具

libsodium:基于NaCI的加密库,固执己见,容易使用

Nettle 底层的加密库

OpenSSL : 一个强大的,商用的,功能齐全的,开放源代码的加密库。

Tiny AES128 in C :用C实现的一个小巧,可移植的实现了AES128ESB的加密算法


数据库,SQL服务器,ODBC驱动程序和工具

hiberlite :用于Sqlite3的C++对象关系映射

Hiredis: 用于Redis数据库的很简单的C客户端库

LevelDB: 快速键值存储库

LMDB:符合数据库四大基本元素的嵌入键值存储

MySQL++:封装了MySql的C API的C++ 包装器

RocksDB:来自Facebook的嵌入键值的快速存储

SQLite:一个完全嵌入式的,功能齐全的关系数据库,只有几百KB,可以正确包含到你的项目中。


调试库, 内存和资源泄露检测,单元测试

Boost.Test:Boost测试库

Catch:一个很 时尚 的,C++原生的框架,只包含头文件,用于单元测试,测试驱动开发和行为驱动开发。

CppUnit:由JUnit移植过来的C++测试框架

CTest:CMake测试驱动程序

googletest:谷歌C++测试框架

ig-debugheap:用于跟踪内存错误的多平台调试堆

libtap:用C语言编写测试

MemTrack —用于C++跟踪内存分配

microprofile- 跨平台的网络试图分析器

minUnit :使用C写的迷你单元测试框架,只使用了两个宏

Remotery:用于web视图的单一C文件分析器

UnitTest++:轻量级的C++单元测试框架


Cocos2d-x :一个跨平台框架,用于构建2D 游戏 ,互动图书,演示和其他图形应用程序。

Grit :社区项目,用于构建一个免费的 游戏 引擎,实现开放的世界3D 游戏 。

Irrlicht :C++语言编写的开源高性能的实时#D引擎

Polycode:C++实现的用于创建 游戏 的开源框架(与Lua绑定)。


CEGUI : 很灵活的跨平台GUI库

FLTK :快速,轻量级的跨平台的C++GUI工具包。

GTK+: 用于创建图形用户界面的跨平台工具包

gtkmm :用于受欢迎的GUI库GTK+的官方C++接口。

imgui:拥有最小依赖关系的立即模式图形用户界面

libRocket :libRocket 是一个C++ HTML/CSS 游戏 接口中间件

MyGUI :快速,灵活,简单的GUI

Ncurses:终端用户界面

QCustomPlot :没有更多依赖关系的Qt绘图控件

Qwt :用户与技术应用的Qt 控件

QwtPlot3D :功能丰富的基于Qt/OpenGL的C++编程库,本质上提供了一群3D控件

OtterUI :OtterUI 是用于嵌入式系统和互动 娱乐 软件的用户界面开发解决方案

PDCurses 包含源代码和预编译库的公共图形函数库

wxWidgets C++库,允许开发人员使用一个代码库可以为widows, Mac OS X,Linux和其他平台创建应用程序


bgfx:跨平台的渲染库

Cairo:支持多种输出设备的2D图形库

Horde3D 一个小型的3D渲染和动画引擎

magnum C++11和OpenGL 2D/3D 图形引擎

Ogre 3D 用C++编写的一个面向场景,实时,灵活的3D渲染引擎(并非 游戏 引擎)

OpenSceneGraph 具有高性能的开源3D图形工具包

Panda3D 用于3D渲染和 游戏 开发的框架,用Python和C++编写。

Skia 用于绘制文字,图形和图像的完整的2D图形库

urho3d 跨平台的渲染和 游戏 引擎。


Boost.GIL:通用图像库

CImg :用于图像处理的小型开源C++工具包

CxImage :用于加载,保存,显示和转换的图像处理和转换库,可以处理的图片格式包括 BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K。

FreeImage :开源库,支持现在多媒体应用所需的通用图片格式和其他格式。

GDCM:Grassroots DICOM 库

ITK:跨平台的开源图像分析系统

Magick++:ImageMagick程序的C++接口

MagickWnd:ImageMagick程序的C++接口

OpenCV : 开源计算机视觉类库

tesseract-ocr:OCR引擎

VIGRA :用于图像分析通用C++计算机视觉库

VTK :用于3D计算机图形学,图像处理和可视化的开源免费软件系统。

最后, 对于学习编程或者在工作想升职的程序员兄弟,如果你想更好的提升你的编程能力帮助你提升水平! 笔者这里或许可以帮到你~

编程学习书籍分享:

编程学习视频分享:

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

E. 用lzma算法进行文件的加密和解密,会的进....

这种算法不可能有源码给你的,要掌握其中的原理思想,自己编代码

F. make oldconfig 和 make defconfig有何区别

make oldconfig和make defconfig的区别为:意思不同、用法不同、侧重点不同。

一、意思不同

1.make oldconfig意思:生成旧配置。

2.make defconfig意思:生成内核编译。

二、用法不同

1.make oldconfig用法:make oldconfig和make config类似,但是它的作用是在现有的内核设置文件基础上建立一个新的设置文件,只会向用户提供有关新内核特性的问题,在新内核升级的过程 中,make oldconfig非常有用,用户将现有的配置文件.config复制到新内核的源码中,执行make oldconfig,此时,用户只需要回答那些针对新增特性的问题。

2.make defconfig用法:基于文本的最为传统的也是最为枯草的一种配置方式,但是它可以使用任何情况,这种方式会为每一个内核支持的特性向用户提问,如果用户回答“y”,则把特性编译进内核;回答“m”,则它特性作为模块进行编译;回答“n”,则表示不对该特性提供支持。

三、侧重点不同

1.make oldconfig侧重点:oldconfig是将当前内核源码的新特性加入.config中去。

2.make defconfig侧重点:defconfig是直接按照默认的i386_defconfig生成.config。

G. lzmaDecode 是什么算法

LZMA,(Lempel-Ziv-Markov chain-Algorithm的缩写),是一个Deflate和LZ77算法改良和优化后的压缩算法,开发者是Igor Pavlov,2001年被首次应用于7-Zip压缩工具中,是 2001年以来得到发展的一个数据压缩算法。它使用类似于 LZ77 的字典编码机制,在一般的情况下压缩率比 bzip2 为高,用于压缩的可变字典最大小可达4GB.

C++ 语言写成的的 LZMA 开放源码压缩库使用了区间编码支持的 LZ77 改进压缩算法以及特殊的用于二进制的预处理程序。
数据流、重复序列大小以及重续序列位置单独进行了压缩。
LZMA 支持几种散列链变体、二叉树以及基数树作为它的字典查找算法基础。

BCJ / BCJ2

BCJ / BCJ2 压缩工具所附带的 LZMA SDK 包括:在 X86、ARM、PowerPC、IA-64 以及 ARM Thumb 处理器上在压缩之前跳转目标进行归一化处理。对于 x86 平台来说,这是一个近跳转、近调用以及近条件跳转需要从“向后跳 1665 字节”这样的机器语言归一化到“跳转到 5554”这样的格式,但是短跳转及短条件跳转不需要进行这样的处理。

7-Zip

尽管 7-Zip BCJ2 使用 32 位的偏移地址,但是 UPX 这样的可执行文件压缩工具当检测到 16 位 DOS 二进制文件格式的时候仍然可以使用 16 位的数值。RAR 压缩工具对 32 位的 x86 可执行文件以及 IA64 Itanium 可执行文件进行偏移地址压缩。
BCJ / BCJ2 二进制文件压缩
BCJ 与 BCJ2 之间的区别在于前者只将近跳转及近调用目标地址转换到归一化的形式,而 BCJ2 只将 x86 平台下的近跳转、近调用及条件近跳转目标分别进行压缩。
7-Zip 实现
在GNU LGPL通用公共许可证下发布的7-zip中使用的LZMA有以下几个特点:
* 高压缩比;
* 解压缩程式码较小:约 5 KB;
* 解压缩时仅需少量内存 (取决于字典大小);
* 可变更字典大小 (最大 4 GB);
* 压缩速度:在一部2GHz的处理器上运行,约可达到1MB每秒的速度;
* 解压缩速度:在一部2GHz的处理器上运行,约可达10-20MB每秒的速度;
* 支援多线程、多核心(多处理器)和Pentium 4处理器的超线程(Hyper-Threading);
这个特点使得这个这个算法的解压过程非常适合于嵌入式系统应用的场合。
可移植性
一些微软Windows专有的特性深深嵌入在源程序中,这样就很难生成一个与 Unix 兼容的版本。但是,已经有两个移植到类 Unix 平台的版本:
* p7zip 是一个或多或少地完全将 7z 及 7za 移植到 POSIX 的 7-zip 版本,这些系统包括 Linux、Solaris、OpenBSD、FreeBSD、Cygwin 等 Unix 系统以及 Mac OS X 和 BeOS等。
* LZMA Unix Port 是一个只移植了 LZMA 中代码的版本,它是一个类似于 gzip 的基于数据流的压缩工具。它不是一个归档工具,而只是一个普通的压缩工具,并且由于它在没有数据头中没有未压缩文件大小的 UInt64 变量,所以它与 7-zip 生成的 LZMA 数据流中不同。7-zip 使用一种更加灵活的归档格式 7z,因此二者都不能互相使用对方生成的数据,至少在目前是这样。

应用

使用或者支持 LZMA 的软件有:
* Nullsoft Scriptable Install System
* Inno Setup
* cramfs and SquashFS, with applied patches
* lrzip ("long range zip", or "LZMA rzip")
* PyLZMA,Igor Pavlov 的 LZMA SDK 的 Python 语言接口
* FreeArc, 归档工具及 LZMA SDK 的 Haskell 语言接口
* 用于 Pascal 语言的 LZMA SDK

H. 怎样 编译 lzma kernel image

gnu tar的1.26版本开始支持lzma和xz压缩,下载tar源码编译安装就行了
希望回答对你有所帮助

I. 高分求一种压缩算法对文本进行压缩和解压的源码

7-Zip 是一款 开源 软件。大多数源代码都基于 GNU LGPL 许可协议下发布。AES 代码基于 BSD 许可下发布。unRAR 代码基于两种许可:GNU LGPL 和 unRAR 限制许可。
您可以在使用任何计算机上使用 7-Zip ,包括用在商业用途的计算机,不对 7-Zip 进行捐赠或支付并不影响您的使用。但是您可以通过 捐赠 的方式来支持 7-Zip 今后的发展。
7-Zip 主要特征
更新了算法来加大 7z 格式 的压缩比
支持格式:
压缩及解压缩:7z、ZIP、GZIP、BZIP2 和 TAR (目前不支持RAR格式,是因为RAR是一种商业格式)
仅解压缩:RAR、CAB、ISO、ARJ、LZH、CHM、WIM、Z、CPIO、RPM、DEB 和 NSIS
对于 ZIP 及 GZIP 格式,7-Zip 能提供比使用 PKZip 及 WinZip 高 2-10% 的压缩比
7z 格式支持创建自释放(SFX)压缩档案
集成 Windows 外壳扩展
强大的的文件管理
强大的命令行版本
支持 FAR Manager 插件
支持 69 种语言
通常使用 7-Zip 的 7z 格式能比使用 zip 格式的压缩档案小 30-70%。并且使用 7-Zip 创建的 zip 格式比大多数其它压缩软件创建的都小 2-10%。
7zip的官方主页
http://www.7-zip.org/ 英文
http://7z.sparanoid.com/ 简体中文
7zip的SF主页
http://sourceforge.net/projects/sevenzip/ 在这里可以下载到所有的版本及其源代码,以及LZMA算法源代

J. linux内核代码 汇编部分 疑问

没研究过。

不过我记得 Linux 内核其实是两部分,真正的内核本体是在内核文件的后部,一般都是压缩的。之前是一个这个架构通用的启动代码,应该就是你这个汇编。
bootloader 的作用是把内核读取到指定地址,之后运行这个内核,这样运行的恰恰就是这段汇编写的启动代码,这个启动代码的作用就是初始化环境,之后把后面本体的内核解压缩并且写到内存开始部分(忘了叫什么名字)正好盖掉 bootloader ,并且继续运行。这样这个运行的内核才是最终的 Linux 内核。(至少 x86 是这样)

但每个 CPU 架构的启动过程又有不同的地方。应该每个 CPU 都有自己特定的头部启动代码。
你说这三个文件应该是有不同目的的。compressed 应该是解压用的,kernel 里面的应该是执行主要启动过程的。那个 common.s 应该是“通用”部分代码模块。我的 comperssed 里面还有很多 lzma 、gzip 、lzo 以及一些设备名称的东西,应该都是“模块”一类的吧。

你看看 Makefile 的编译过程应该就能开除编译调用的文件都是什么了。

还有,你看源代码最好看原版的,如果使用,那就去用针对性的。不然赶上找抽的人,可能针对某个开发板的代码,会因为太过针对而不符合通用的一些规定或者习惯。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:333
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:377
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:611
java用什么软件写 发布:2025-05-18 03:56:19 浏览:31
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:942
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:739
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:802
网卡访问 发布:2025-05-18 03:35:04 浏览:510
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371