VC-LTL
4.0.3.8
See the version list below for details.
Requires NuGet 2.5 or higher.
dotnet add package VC-LTL --version 4.0.3.8
NuGet\Install-Package VC-LTL -Version 4.0.3.8
<PackageReference Include="VC-LTL" Version="4.0.3.8" />
paket add VC-LTL --version 4.0.3.8
#r "nuget: VC-LTL, 4.0.3.8"
// Install VC-LTL as a Cake Addin #addin nuget:?package=VC-LTL&version=4.0.3.8 // Install VC-LTL as a Cake Tool #tool nuget:?package=VC-LTL&version=4.0.3.8
VC-LTL——编译精巧的程序原来如此简单
<br/> 我愿化成一座做石桥,经受五百年的风吹,五百年的日晒,五百年的雨打,只求她从桥上走过!
1. 关于VC-LTL
VC-LTL是一个基于微软VC修改的开源运行时,有效减少应用程序体积并摆脱微软运行时DLL,比如msvcr120.dll、api-ms-win-crt-time-l1-1-0.dll等依赖。
VC-LTL最初是Dism++专用运行时。2017年3月6号从Dism++源代码中分离,并正式对外开源,为社区贡献自己的微薄之力。
在大型项目中往往有众多模块,如果都采用静态编译那么造成的空间浪费先不说,最后也会因为Fls上限
导致程序无法正常运行。
而VC-LTL能让你的项目如同系统文件一样共享系统内置msvcrt.dll
,有效的解决Fls上限
以及运行时部署问题
,同时大大缩减程序体积
,可以说一箭三雕!
所有人都可以无条件、免费使用,包括用于商业环境。当然如果大家在自己的程序说明文件中声明使用了VC-LTL那就更好了。
1.1. 原理
使用VC-LTL后可以将程序动态链接到系统自带的msvcrt.dll中,来减少程序体积。目前使用CRT以及STL的工程一般都可以使用。但是MFC工程不能使用,因为MFC类库太复杂了,尚未适配。
使用VC-LTL,C++程序体积大约缩减30%,而纯C程序则大约缩减50%。
1.2. 亮点
- 晚起的鸟儿也有虫虫吃,优雅的引用方式,仅添加一个属性表就能享受极致的体积体验。
- 无缝使用最新C/C++库以及最新编译器,尽情的使用最新规范。神马异常流防护(guard:cf)、静态对象线程安全初始化(threadSafeInit)……统统放马过来吧!!
- 拥有比微软原版更好的兼容性,即使想兼容Windows XP RTM也可以安心的对新编译器说“Yes”。
- 完全的开放代码,广泛的接受用户意见,希望大家能踊跃的 pull requests,为VC-LTL添砖加瓦。
让我们一起跟VS 2008说拜拜!
2. VC-LTL兼容性
2.1. 支持的IDE
- Visual Studio 2015(包含Clang with Microsoft CodeGen、Clang 3.7 with Microsoft CodeGen、Clang-LLVM)
- Visual Studio 2017(包含Clang with Microsoft CodeGen、Clang-LLVM)
- Visual Studio 2019(包含Clang-LLVM)
2.3. 支持的操作系统
操作系统 | x86 | x64 | arm | arm64 |
---|---|---|---|---|
Windows XP、Windows Server 2003 | √ | √ | - | - |
Windows Vista、Windows Server 2008 | √ | √ | - | - |
Windows 7、Windows Server 2008 R2 | √ | √ | - | - |
Windows 8、Windows Server 2012、Windows RT | √ | √ | √ | - |
Windows 8.1、Windows Server 2012 R2、Windows RT 8.1 | √ | √ | √ | - |
Windows 10、Windows Server 2016、Windows Server 2019 | √ | √ | √ | √ |
采用VC-LTL编译后的程序能兼容Windows XP RTM以上所有操作系统,无需安装任何SP补丁包。
Product | Versions Compatible and additional computed target framework versions. |
---|---|
native | native is compatible. |
-
- YY.NuGet.Import.Helper (>= 1.0.0.2)
- YY.UCRT.10.0.10240.0.Package (= 4.0.3.8)
- YY.UCRT.10.0.15063.0.Package (= 4.0.3.8)
- YY.UCRT.10.0.16299.0.Package (= 4.0.3.8)
- YY.UCRT.10.0.17134.0.Package (= 4.0.3.8)
- YY.UCRT.10.0.17763.0.Package (= 4.0.3.8)
- YY.UCRT.10.0.18362.0.Package (= 4.0.3.8)
- YY.UCRT.Shared (= 4.0.3.8)
- YY.VCRT.14.0.23918.Header (= 4.0.3.8)
- YY.VCRT.14.0.23918.Library (= 4.0.3.8)
- YY.VCRT.14.0.24210.Header (= 4.0.3.8)
- YY.VCRT.14.0.24210.Library (= 4.0.3.8)
- YY.VCRT.14.0.24225.Header (= 4.0.3.8)
- YY.VCRT.14.0.24225.Library (= 4.0.3.8)
- YY.VCRT.14.0.24231.Header (= 4.0.3.8)
- YY.VCRT.14.0.24231.Library (= 4.0.3.8)
- YY.VCRT.14.10.25017.Header (= 4.0.3.8)
- YY.VCRT.14.10.25017.Library (= 4.0.3.8)
- YY.VCRT.14.11.25503.Header (= 4.0.3.8)
- YY.VCRT.14.11.25503.Library (= 4.0.3.8)
- YY.VCRT.14.12.25827.Header (= 4.0.3.8)
- YY.VCRT.14.12.25827.Library (= 4.0.3.8)
- YY.VCRT.14.13.26128.Header (= 4.0.3.8)
- YY.VCRT.14.13.26128.Library (= 4.0.3.8)
- YY.VCRT.14.14.26428.Header (= 4.0.3.8)
- YY.VCRT.14.14.26428.Library (= 4.0.3.8)
- YY.VCRT.14.15.26726.Header (= 4.0.3.8)
- YY.VCRT.14.15.26726.Library (= 4.0.3.8)
- YY.VCRT.14.16.27023.Header (= 4.0.3.8)
- YY.VCRT.14.16.27023.Library (= 4.0.3.8)
- YY.VCRT.14.20.27508.Header (= 4.0.3.8)
- YY.VCRT.14.20.27508.Library (= 4.0.3.8)
- YY.VCRT.14.21.27702.Header (= 4.0.3.8)
- YY.VCRT.14.21.27702.Library (= 4.0.3.8)
- YY.VCRT.14.22.27905.Header (= 4.0.3.8)
- YY.VCRT.14.22.27905.Library (= 4.0.3.8)
- YY.VCRT.14.23.28105.Header (= 4.0.3.8)
- YY.VCRT.14.23.28105.Library (= 4.0.3.8)
- YY.VCRT.14.24.28314.Header (= 4.0.3.8)
- YY.VCRT.14.24.28314.Library (= 4.0.3.8)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
5.1.1 | 8,352 | 8/11/2024 |
5.1.1-Beta4 | 206 | 8/4/2024 |
5.1.1-Beta3 | 241 | 7/14/2024 |
5.1.1-Beta2 | 3,444 | 5/30/2024 |
5.1.1-Beta1 | 443 | 5/25/2024 |
5.0.10-Beta2 | 1,547 | 5/4/2024 |
5.0.10-Beta1 | 149 | 5/2/2024 |
5.0.9 | 16,080 | 10/1/2023 |
5.0.8 | 3,521 | 6/22/2023 |
5.0.8-Beta2 | 867 | 6/1/2023 |
5.0.8-Beta1 | 857 | 5/10/2023 |
5.0.7 | 1,249 | 5/7/2023 |
5.0.6 | 768 | 4/30/2023 |
5.0.6-Beta5 | 1,097 | 4/5/2023 |
5.0.6-Beta4 | 1,189 | 3/18/2023 |
5.0.6-Beta3 | 838 | 1/25/2023 |
5.0.6-Beta2 | 758 | 11/5/2022 |
5.0.6-Beta1 | 2,972 | 7/17/2022 |
5.0.5 | 32,721 | 5/15/2022 |
5.0.5-Beta1 | 653 | 3/19/2022 |
5.0.4 | 6,142 | 3/13/2022 |
5.0.4-Beta3 | 1,581 | 1/17/2022 |
5.0.4-Beta2 | 608 | 12/29/2021 |
5.0.4-Beta1 | 4,073 | 12/16/2021 |
5.0.3 | 902 | 12/8/2021 |
5.0.3-Beta1 | 1,596 | 11/2/2021 |
5.0.2-Beta1 | 1,760 | 10/9/2021 |
5.0.1 | 1,032 | 9/19/2021 |
5.0.1-Beta6 | 769 | 9/5/2021 |
5.0.1-Beta5 | 278 | 8/30/2021 |
5.0.1-Beta4 | 1,133 | 8/26/2021 |
4.1.3 | 5,289 | 7/12/2021 |
4.1.3-Beta2 | 418 | 6/18/2021 |
4.1.3-Beta1 | 1,314 | 6/3/2021 |
4.1.2 | 4,861 | 6/3/2021 |
4.1.2-Beta3 | 513 | 5/27/2021 |
4.1.2-Beta2 | 358 | 5/24/2021 |
4.1.2-Beta1 | 393 | 5/11/2021 |
4.1.1 | 5,444 | 2/7/2021 |
4.1.1-Beta7 | 527 | 12/18/2020 |
4.1.1-Beta5 | 306 | 11/5/2020 |
4.1.1-Beta4 | 348 | 9/26/2020 |
4.1.1-Beta3 | 388 | 9/1/2020 |
4.1.0.4 | 2,908 | 7/25/2020 |
4.0.3.8 | 2,472 | 1/17/2020 |
* 改进体验,改进VS用户使用VC-LTL的体验(感谢 毛利)。
* 改进体验,改进QT支持(感谢 昌平517)。
* 新增Fea,添加14.23.28105支持。
* 新增Fea,添加14.24.28314支持。
* 新增Fea,添加LLVM for Visual Studio 2019支持。
* 行为调整,消除FH4对TLS的依赖。
* 解决Bug,消除 corecrt_wstdio.h 以及 mbstring.h中的 C4201警告(感谢 大胸)。
* 解决Bug,解决XP `legacy_stdio_definitions.lib` 缺少 vsnprintf_s 问题(感谢 昌平517)。
* 解决Bug,轻量模式中,`legacy_stdio_definitions.lib`可能出现符号冲突问题(感谢 昌平517)。