Есть ли готовые исходники Aegisub для visual studio 2013 с зависимостями |
Здравствуйте, гость ( Вход | Регистрация )
Есть ли готовые исходники Aegisub для visual studio 2013 с зависимостями |
antoxabond |
31.10.2019, 6:35
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 25.11.2018 Пользователь №: 5013 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть ли у кого готовые исходники Aegisub для visual studio 2013 с зависимостями?
Хотелось бы изменить немного функционал программы ( облегчить до лайт версии без видео и звука, а так же добавить пакетную обработку ). Брал исходники с Git, а они даже на родной студии 2015 не компилятся - куча ошибок. |
|
|
Iron Bug |
31.10.2019, 15:31
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
пальцем в небо - попробуй поставить опции старых C++ cтандартов, что-нибудь типа С++11 (тут я не знаю, как в компиляторе MS это делается, но должны быть опции).
|
|
|
antoxabond |
2.12.2019, 12:11
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 25.11.2018 Пользователь №: 5013 Спасибо сказали: 0 раз(а) Репутация: 0 |
После долгой экзекуции получилось успешно собрать Aegisub.
Предоствляю инструкцию сделанной после долгой работы методами проб и ошибок. Пролог. За основу была взята версия "Aegisub-3.2.2 Build 8635", так как сообщалось что это последняя версия, которая будет работать на Windows XP. В качестве среды разработки была взята Visual Studio 2013. 1. Подготовка 1.1. Так как Visual Studio 2013 работает только на Windows 7 SP1 и выше, нужно учесть эти требования. Лучше использовать 64 битную версию Windows, так как линкер потребляет много памяти (около 2Гб). Так же 64 битная версия нужна для отладки (если нужна). В противом случае во время сборки отладочной версии появлялись ошибки типа: "c:\aegisub_3.2.2-2013\obj\icu-win32-debug\icudt53l.c(1): fatal error C1060: compiler is out of heap space". Что являлось следствием ограничения 32 битной системы. 1.2. Надо установить Microsoft DirectX SDK (February 2010) (имя файла было DXSDK_Feb10.exe) с интернета. 1.3. Установить Visual Studio 2013. Лучше "Ultumate" версия чем "Express Desktop". "Express Desktop" версия хуже из-за того. что почему-то не подхватывала автоматичеки пути "Microsoft DirectX SDK (February 2010)" и не было в установке библиотек "atlmfc". 1.4. Добавить пути компилятора и DirectX SDK в системный путь Windows. Вот эти строчки: ;C:\Program Files\Microsoft Visual Studio 12.0\VC\bin;c:\Program Files\Microsoft SDKs\Windows\v7.1A\Bin Если этого не сделать, то будут ошибки типи отсутствия cl.exe или rc.exe Последобавления путей перезагрузиться. 1.5. Найти в интеренете yasm-1.3.0_2015-06-09_32bits.zip и извлечь содержимое в папку "C:\Program Files\Microsoft Visual Studio 12.0\VC\bin\" (можно и в "C:\windows\", но лучше в эту). Переимеовать все файлы "vsyasm.*" в "yasm.*". Если переменовать только exe файл, то будут ошибки типа error "yasm: could not open file `Aegisub_3.2.2-2013\vendor\ffmpeg\libavfilter\x86\vf_idet.obj'" из-зи того, что надо переименовать также и файлы конфигурации *.props, *.targets, *.xml. 1.6. Если используется версия "Visual Studio 2013 Express Desktop", то нужно восполнить отсутствие библиотек "atlmfc": можно скачать усановочник "Visual Studio 2013 Ultumate" наити и распаковать (можно использовать "total comander" с плагинами распаковки msi файлов) d:\packages\vc_libraryextended\vc_libraryextended.msi\SourceDir\Program Files\Microsoft Visual Studio 12.0\VC\atlmfc\ по адресу c:\Program Files\Microsoft Visual Studio 12.0\VC\atlmfc\ 2. Подготовка проекта. 2.1. Установить Git, а затаем TortoiseGit 2.2. переити например в корень диска "c:\" и вызвать контекстное меню. Выбрать TortoiseGit, затем clone, заполнить данные формы: поле URL установить "https://github.com/Aegisub/Aegisub.git", поставить галочку "recursive", поставить галочку "branch" и ввести рядом в поле версию "v3.2.2", установить имя, например, "Aegisub_3.2.2-2013". Поити пить чай и ждать пока процесс закончится. 2.3. Нати в интернете проект fribidi, скачать и распаковать в папку "C:\Aegisub_3.2.2-2013\vendor\" 2.4. Скачать компонент ICU по ссылке "https://github.com/unicode-org/icu/releases/tag/release-53-2" архив "icu4c-53_2-src.zip". Удалить папку "C:\Aegisub_3.2.2-2013\vendor\icu". Распаковать "icu4c-53_2-src.zip" в "C:\Aegisub_3.2.2-2013\vendor\". (Выяснилось в процессе компиляции, что ICU компонент в пректе не полный и вызывает множество ошибок компиляции, например: "not found file "C:\Aegisub_3.2.2-2013\vendor\icu\source\data\in\icudt53l.dat"", также некоректный файл "icudt53l.dat" вызывает ошибки при загрузке субтитров: "U_MISSING_RESOURCE_ERROR" и "Failed to create character iterator".) 2.5. Файл "icudt53l.dat" в архиве "icu4c-53_2-src.zip" не меланький ~20Mb и exe-файл будет больше оригинал на ~15Mb. Если хочется уменьшить его размер то можно поступить так: (1) установить Aegisub-3.2.2-32 (build 3.2.2.8635); (2) используя 7-Zip открыть файл aegisub32.exe из установленной папки; (3) извлечь ".rdata" на диск, открыть его hex-редактором (например HxD): (3.1) удалить первые 0005FCC0 байт (3.2) вырезать первые 00425470 байт в новый документ и сохранить как "icudt53l.dat" (получится примерно ~4.4Mb) (4) заменить оригинальный по адресу "C:\Aegisub_3.2.2-2013\vendor\icu\source\data\in\icudt53l.dat" 3. Исправление ошибок в файлах пректа. 3.1. Удаление упоминания "BuildTasks.dll": открыть в текстовом редекторе "C:\Aegisub_3.2.2-2013\build\fribidi\fribidi.vcxproj" и удалить строчки: <UsingTask TaskName="TarballProject" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" /> delete record from C:\Aegisub_3.2.2-2013\build\tasks.props :: <UsingTask TaskName="GitVersion" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" /> delete record from C:\Aegisub_3.2.2-2013\build\icu\icu.vcxproj :: <UsingTask TaskName="DownloadTgzFile" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" /> 3.2. Удаление упоминания "DownloadTgzFile": открыть в текстовом редекторе "C:\Aegisub_3.2.2-2013\build\icu\icu.vcxproj" и удалить строчки: <Target Name="DownloadDataTables" BeforeTargets="PackDataTables" Inputs="$(IcuSrcDir)data\in\$(IcuDt).dat.gz" Outputs="$(IcuSrcDir)data\in\$(IcuDt).dat"> <!-- 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> 3.3. Удаление упоминания "TarballProject": открыть в текстовом редекторе "C:\Aegisub_3.2.2-2013\build\fribidi\fribidi.vcxproj" и удалить строчки: <!-- Download fribidi --> <Target Name="Download" BeforeTargets="ClCompile" Inputs="$(FribidiSrcDir)aegisub.hash" Outputs="$(FribidiSrcDir)nonexistent-file"> <TarballProject Url="http://fribidi.org/download/fribidi-0.19.6.tar.bz2" Hash="cba8b7423c817e5adf50d28ec9079d14eafcec9127b9e8c8f1960c5ad585e17d" Root="$(FribidiSrcDir)" /> </Target> 3.3. Удаление упоминания "GitVersion": открыть в текстовом редекторе "C:\Aegisub_3.2.2-2013\build\Aegisub\Aegisub.vcxproj" и удалить строчки: <!-- Update git_version.h --> <Target Name="UpdateVersion" BeforeTargets="ClCompile"> <GitVersion Root="$(AegisubSourceBase)" /> </Target> 4. Настройка проекта. 4.1. запустить через консоль "devenv.exe /useenv" (для "Ultumate" версии) и ""C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\WDExpress.exe" /useenv" (для "Express Desktop" версии) 4.2. Открыть проект aegusub.sln 4.3. Удалить проекты ".nget", "BuildTasks", "PortableInstaller". 4.4. Прописать lib и inclide пути: (Как именно: открыть сойства выбранного проекта и по порядку окно project properpies-> раздел configuration properties-> подраздел c/c++ -> параметр: additional incide derictories для incude; окно project properpies-> раздел configuration properties-> подраздел linker -> параметр: additional library derictories для library; ";" разделитель между путями в строке) (1) для всех приектов кроме [freetype,fontconfig,libass] дописать пути: include:"$(ProgramFiles)\Microsoft Visual Studio 12.0\VC\include;$(ProgramFiles)\Windows Kits\8.1\Include\um;$(ProgramFiles)\Windows Kits\8.1\Include\shared;" library:"$(ProgramFiles)\Microsoft Visual Studio 12.0\VC\lib;$(ProgramFiles)\Windows Kits\8.1\Lib\winv6.3\um\x86;" ( Если использовать SDK версии "v7.1A", то проект скомпилится в конце концов, но будет ошибка инициализации ICU модуля при загрузке субтитров "U_MISSING_RESOURCE_ERROR" and "Failed to create character iterator" ) (2) для приектов [freetype,fontconfig,libass] дописать пути: include:"$(ProgramFiles)\Microsoft Visual Studio 12.0\VC\include;$(ProgramFiles)\Microsoft SDKs\Windows\v7.1A\Include;" library:"$(ProgramFiles)\Microsoft Visual Studio 12.0\VC\lib;$(ProgramFiles)\Microsoft SDKs\Windows\v7.1A\lib;" (Если использовать SDK версии 28.1", то будет много неразрешимых ошибок компиляции) (3) для приекта [ffms2] дописать пути: include:"$(ProgramFiles)\Microsoft Visual Studio 12.0\VC\atlmfc\include;" library:"$(ProgramFiles)\Microsoft Visual Studio 12.0\VC\atlmfc\lib;" (исправит ошибку в строке "#include <atlbase.h>") (4) Если не видит DirectX SDK дописать пути: include для [ffmpeg] проекта:"$(ProgramFiles)\Microsoft DirectX SDK (February 2010)\Include;" library для [ffmpeg,aegisub] проектов:"$(ProgramFiles)\Microsoft DirectX SDK (February 2010)\lib\x86;" 4.5. Скопировать файлы: (1) из папки "c:\Program Files\Windows Kits\8.1\Include\um\" список windows.h winresrc.h winuser.rh commctrl.rh dde.rh winnt.rh dlgs.h winver.h verrsrc.h в папку "C:\Aegisub_3.2.2-2013\include\" (2) из папки "c:\Program Files\Windows Kits\8.1\Include\shared\" winapifamily.h sdkddkver.h SpecStrings.h sal.h concurrencysal.h driverspecs.h sdv_driverspecs.h в папку "C:\Aegisub_3.2.2-2013\include\" (Исправляется ошибки связанные с "#include <windows.h>" в "C:\Aegisub_3.2.2-2013\include\wx\msw\wx.rc" и "C:\Aegisub_3.2.2-2013\libaegisub\windows\fs.cpp". Почему-то "C:\Aegisub_3.2.2-2013\include\wx\msw\wx.rc" не видит системные Include, даже если жестко прописать вылетят ошибки) 4.6. Прописать в файле "C:\Aegisub_3.2.2-2013\src\res\res.rc" перед абзатцем где встречается "RESOURCE_BASE_VERSION" "#define RESOURCE_BASE_VERSION 3,2,2" Запустить сборку и ждать пока закончится процесс. Готовые файлы по адресу https://yadi.sk/d/4zC2m8iB-4bpzw |
|
|
antoxabond |
4.1.2020, 7:44
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 25.11.2018 Пользователь №: 5013 Спасибо сказали: 0 раз(а) Репутация: 0 |
Как отключить поддержку ffmpeg для того , чтобы не было зависимости от библиотеки ffms2_32.dll.
В программе используются два драйвера рендеринге видео: directshow и ffmpeg(ffms2). ffms2 работает в разы медленнее, и чтобы отключить его поддержку и удалить саму библиотеку ( с приличным размером в 7Мб), нужно проделать следующие манипуляции: 1) Выбрать через меню проекта: aegisub -> project properties -> configuration properties -> aegisub -> external libraries 2) Выставить параметр WITH_FFMS2 -> no 3) сохранить и перекомпилировать. |
|
|
Iron Bug |
5.1.2020, 0:24
Сообщение
#5
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
2.1. Установить Git, а затаем TortoiseGit 2.2. переити например в корень диска "c:\" и вызвать контекстное меню. Выбрать TortoiseGit, затем clone, заполнить данные формы: поле URL установить "https://github.com/Aegisub/Aegisub.git", поставить галочку "recursive", поставить галочку "branch" и ввести рядом в поле версию "v3.2.2", установить имя, например, "Aegisub_3.2.2-2013". вот это всё можно было бы заменить установкой git и командой
оно бы и качалось куда быстрее, не все ветки и без истории, ибо она тебе при сборке не нужна. |
|
|
Текстовая версия | Сейчас: 25.11.2024, 4:17 |