crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Есть ли готовые исходники Aegisub для visual studio 2013 с зависимостями
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Iron Bug Дата 5.1.2020, 0:24
 
Цитата(antoxabond @ 2.12.2019, 14:11) *
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 и командой
git clone --depth=1 --single-branch --branch v3.2.2 Aegisub_3.2.2-2013

оно бы и качалось куда быстрее, не все ветки и без истории, ибо она тебе при сборке не нужна.
antoxabond Дата 4.1.2020, 7:44
  Как отключить поддержку ffmpeg для того , чтобы не было зависимости от библиотеки ffms2_32.dll.
В программе используются два драйвера рендеринге видео: directshow и ffmpeg(ffms2).
ffms2 работает в разы медленнее, и чтобы отключить его поддержку и удалить саму библиотеку ( с приличным размером в 7Мб),
нужно проделать следующие манипуляции:
1) Выбрать через меню проекта: aegisub -> project properties -> configuration properties -> aegisub -> external libraries
2) Выставить параметр WITH_FFMS2 -> no
3) сохранить и перекомпилировать.
antoxabond Дата 2.12.2019, 12:11
  После долгой экзекуции получилось успешно собрать 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
Iron Bug Дата 31.10.2019, 15:31
  пальцем в небо - попробуй поставить опции старых C++ cтандартов, что-нибудь типа С++11 (тут я не знаю, как в компиляторе MS это делается, но должны быть опции).
antoxabond Дата 31.10.2019, 6:35
  Есть ли у кого готовые исходники Aegisub для visual studio 2013 с зависимостями?
Хотелось бы изменить немного функционал программы ( облегчить до лайт версии без видео и звука, а так же добавить пакетную обработку ).
Брал исходники с Git, а они даже на родной студии 2015 не компилятся - куча ошибок.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 6:01