Невозможно собрать OpenH264.lib для Windows
Я следовал всем инструкциям, упомянутым в https://github.com/cisco/openh264 но мне не удалось пройти. Информация цитируется по ссылке, но она довольно запутанная.
2 ответа
Альтернативный путь:
Вы можете собрать Openh264, используя Visual Studio в Windows. Вот шаги..
- i) Загрузите исходный код OpenH264, предоставленный cisco (о котором вы уже упомянули https://github.com/cisco/openh264).
- ii) Теперь вы найдете два совместимых с Visual Studio проекта в каталогах /OpenH264/codec/build/win32/dec и / OpenH264 / codec / build / win32 / enc.
- iii) Вам необходимо загрузить программное обеспечение NASM с http://www.nasm.us/pub/nasm/releasebuilds/2.12.02/
- iv) Установите программное обеспечение NASM в каталог C:\NASM или где угодно.
- v) Затем добавьте путь к исполняемому файлу NASM ко всем этим проектам Visual Studio.
- vi) Затем вы можете выбрать статическую или динамическую библиотеку в общих параметрах.
- vi) Если вам удастся успешно выполнить все эти операции, у вас будет 5 разных файлов .lib или.dll с именами welsdcore, welsdecplus, welsecore, welsencplus, welsvp, которые можно использовать в любых проектах Visual Studio.
Теперь, если вы хотите получить функции openh264, просто добавьте все эти библиотеки в свой проект и наслаждайтесь. Надеюсь, это поможет вам..:)
У меня также были некоторые трудности при сборке openh264 под Windows, используя рекомендованный подход mingw.
В моем случае make
потерпел крах для всех конфигураций, которые я попробовал:
bash -c "make OS=msvc ARCH=x86_64 USE_ASM=No BUILDTYPE=Debug clean"
bash -c "make OS=msvc ARCH=x86_64 USE_ASM=No BUILDTYPE=Debug"
0 [main] make 3888 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
564 [main] make 3888 open_stackdumpfile: Dumping stack trace to make.exe.stackdump
0 [main] make 5448 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
561 [main] make 5448 open_stackdumpfile: Dumping stack trace to make.exe.stackdump
copying dll files to destination folder...
FullDestDir is E:\projects\openh264\bin\x64\Debug
current dir is:
E:\projects\openh264
DestDir is bin/x64/Debug
cp: cannot stat `openh264.dll': No such file or directory
cp: cannot stat `openh264.lib': No such file or directory
cp: cannot stat `openh264.pdb': No such file or directory
cp: cannot stat `codec_unittest.exe': No such file or directory
cp: cannot stat `h264enc.exe': No such file or directory
cp: cannot stat `h264dec.exe': No such file or directory
BuildDebugFlag =1
BuildReleaseFlag =0
BuildDebugInfo ="build debug--failed"
BuildReleaseInfo =NULL
aBuildFlagList is 1 0
ReturnCode is 1
Я прибег к преобразованию существующих решений / проектов (VS2008) в VS2013 и связыванию / сборке с созданными.lib-файлами.
Вы можете найти решения в {openh264_dir}\codec\build\win32\enc
а также {openh264_dir}\codec\build\win32\dec
, Построение решения создаст.libs и.dlls в {openh264_dir}\bin\Win32\Release
Для ссылки на библиотеку, вам нужно сделать ссылку на welsenc.lib
,
При запуске вам нужно иметь оба welsenc.dll
а также welsvp.dll
в каталоге вашего приложения. До сих пор, кажется, работал нормально для моего использования. Я предполагаю, что построение декодера будет похоже.