首页 > 其他分享 >准备维护 Aegisub 先介绍编译 win10 64 vs2017

准备维护 Aegisub 先介绍编译 win10 64 vs2017

时间:2022-09-24 11:56:49浏览次数:56  
标签:git vs2017 yasm exe 64 Aegisub com icu

起因是,现在开始做翻译,发现这个软件在 WIN 上面显示很模糊,没有适配 高 DPI 显示,看了 从 2014年后,官方就不在发布新版本了,为了自己用着舒服,也为了广大的字幕影视爱好者。

所以 fork 了项目,开始维护这个项目:https://github.com/nejidev/AegisubX

开发环境:win10 64位 vs2017 

https://learn.microsoft.com/zh-cn/visualstudio/releasenotes/vs2017-relnotes

选中使用 C++ 的桌面开发,下载安装好 其它所需的软件和下载地址:

git for windows
vs2017
python3.10
.net 4.6.2
Visual C++ Redistributable 2010
yasm-1.3.0-win64.exe

下载地址

git for windows
https://github.com/git-for-windows/git/releases/download/v2.37.3.windows.1/Git-2.37.3-64-bit.exe

vs2017
https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/

.net 4.6.2
https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net462-developer-pack-offline-installer

Visual C++ Redistributable 2010
https://www.microsoft.com/zh-CN/download/details.aspx?id=48145

yasm-1.3.0-win64.exe
http://www.tortall.net/projects/yasm/releases/yasm-1.3.0-win64.exe

yasm-1.3.0-win64.exe 下载后改名为 yasm.exe 放到下面位置,并将 C:\yasm\ 配置到系统环境变量
C:\yasm\yasm.exe

下载源码

git clone --recursive https://github.com/Aegisub/Aegisub.git

或者
git clone https://github.com/Aegisub/Aegisub.git
git submodule update --init

把项目 clone 到 自己的 github 了,方便修改提交,修复bug

https://github.com/nejidev/AegisubX.git

修复编译错误 1
1>C:\source\Aegisub\build\icu\icu.vcxproj(52,5): error : 无法连接到远程服务器

原因:
build/icu/icu.vcxproj
<IcuDt>icudt53l</IcuDt>

<!-- Generated with tools/strip-icu.py -->
<DownloadTgzFile
Url="http://www.aegisub.org/~plorkyeran/$(IcuDt)-be995a7e5fe230029e9b1e547b7de8826888c18c.dat.gz"
OutputFile="$(MSBuildThisFileDirectory)..\..\vendor\icu\source\data\in\$(IcuDt).dat"
Hash="be995a7e5fe230029e9b1e547b7de8826888c18c"
/>
</Target>

编译时从 网络下载
http://www.aegisub.org/~plorkyeran/$(IcuDt)-be995a7e5fe230029e9b1e547b7de8826888c18c.dat.gz
但是现在已无法下载,所以需要自己建立一个,这里选择使用 python 自带的 http 服务器

将要下载的文件准备好,这里放在了 downloads 文件夹,将来会打包发布到 github
cd downloads
python -m http.server
Serving HTTP on :: port 8000 (http://[::]:8000/) ...

编译成功:

 

开源项目介绍
Aegisub\build 使用到的库

Aegisub/ 主生成 exe
googletest/ google 测试
BuildTasks/ 编译工程使用
hunspell/
icu/ 国际化
scintilla/
PortableInstaller/ 生成封装安装包
libaegisub/ aegisub 自己的库
boost/ c++ 常用库
libass/
csrihelper/
libiconv/ 字符转换
tests/ 测试相关
expat/
libpng/ png 解码 编码
universalchardet/
ffmpeg/ ffmpeg 音视频编解码库
libresrc/ 资源处理
userconfig/ 配置相关
ffms2/ 封装了 ffmpeg 的库 方便开发
luabins/ lua 脚本
fftw/
luajit/
wx/ wxWidgets 跨平台 UI库
freetype2/ 字体库
luajit-buildvm/
fribidi/
luajit-minilua/
zlib/ 压缩解压

接下来的计划,准备升级 wxWidgets 用来支持 2K 4K 高 DPI 的显示。谁让官方不维护了呢。

 

标签:git,vs2017,yasm,exe,64,Aegisub,com,icu
From: https://www.cnblogs.com/ningci/p/16694840.html

相关文章

  • Codeforces Round #640 (Div. 4) D. Alice, Bob and Candies
    CodeforcesRound#640(Div.4)翻译岛田小雅D.Alice,BobandCandies出题人MikeMirzayanov\(n\)个糖果排成一排,从左到右分别被编号为\(1\)到\(n\)。第\(i\)......
  • nacos启动报错ERROR: Please set the JAVA_HOME variable in your environment, We ne
    昨天在docker上跑了一个nacos,今天就寻思在本地上安装一下nacos,然后安装步骤一切正常,然后在配置自启和以systemd的方式管理docker后进行启动,出现了报错1ERROR:Pleasese......
  • leetcode 1640. 能否连接形成数组
    //1class Solution {    int cnt=0;    public boolean canFormArray(int[] arr, int[][] pieces) {        return dfs(0,arr,pieces); ......
  • windows下mingw64编译darknet过程中遇到的错误记录下
    ./examples/go.c:787:5:error:unknowntypename'fd_set';didyoumean'fpos_t'? 解决:      go.c文件中添加头文件#include<sys/select.h> ./include......
  • P3645 [APIO2015] 雅加达的摩天楼
    传送门思路这是一道纯纯暴力题,因为我们可以证明它的状态数不会超过\(n\sqrtn\)级别:若\(p\le\sqrtn\)时,显然状态数不会超过\(n\sqrtn\)若\(p>\sqrtn......
  • Unity打IL2cpp(armv7+arm64)包黑屏的处理方法
     处理方法:删掉Library/Il2cppBuildCache文件夹再打包就行了出现黑屏的前提是之前打过IL2CPP(armv7或arm64)包后再打IL2CPP(armv7+arm64),这个应该是属于unity的锅,unity版......
  • IDE//VS//VS2017,VS2019没有代码提示的问题解决
    IDE//VS//VS2017,VS2019没有代码提示的问题解决小小菜鸡于2022-07-2815:24:44发布235 收藏文章标签:idec++visualstudio版权开始菜单-->所有程序–>VisualStudi......
  • P2649 游戏预言
    #游戏预言##题目描述John和朋友们在玩纸牌游戏,他们一共有$m$个人(包括John)。他们的纸牌比较特殊,一共有$n\timesm$张牌,牌号分别为$1,2,\dots,n\timesm$,没有牌......
  • 前端安全之Base64基础
    Base64基础Base64是什么?Base64是一种基于64个可打印字符(也就是ASCII字符)来表示二进制数据的编码方式,是将二进制数据转化为字符串的过程,原则上来说一些存储在计算机上的......
  • Codeforces Round #640 (Div. 4) C. K-th Not Divisible by n
    CodeforcesRound#640(Div.4)翻译岛田小雅C.K-thNotDivisiblebyn出题人MikeMirzayanov有两个正整数\(n\)和\(k\),输出第\(k\)个不能被\(n\)整除的正整......