Ошибки при компиляции FFmpeg для windows10/aarch64 с использованием Microsoft Visual Studio 2017 Preview edition

Я пытаюсь скомпилировать FFmpeg (версия Chromium) для конфигурации Windows10/Aarch64, используя выпуск сообщества Microsoft Visual Studio 2017 Preview. Я сталкиваюсь с ошибками в файлах сборки, скопированных ниже (выделено несколько ошибок). Я полагаю, что FFmpeg уже работает для конфигурации Linux/Aarch64 (возможно, с использованием ассемблера GNU), и в этом случае тот же код ассемблера также должен работать и для Microsoft ARM Macro Assembler. Пожалуйста, дайте мне знать, если я что-то здесь упускаю и какие-либо указатели, чтобы помочь устранить ошибки.

D: \ Work \ Chromium_FFmpeg \ chromium \ src> ниндзя -C out\ARM64V8 third_party\ffmpeg ниндзя: вход в каталог `out\ARM64V8' [2/9] ASM obj/third_party/ffmpeg/ffmpeg_internal/ obrenname_liffj.jpg64_c_f_jb_c_64_j64 third_party/ffmpeg/ffmpeg_internal/autorename_libavcodec_aarch64_fft_neon.obj D:/Work/Chromium_FFmpeg/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/tool_win/wolrapper_toolin armasm64.exe /Foobj/third_party/ffmpeg/ffmpeg_internal/autorename_libavcodec_aarch64_fft_neon.obj ../../third_party/ffmpeg/libavcodec/aarch64/autorename_libavcodec_aarch64.64b 64.0: 64-битный 64-разрядный 64- битный (R) 64-разрядный 64-разрядный \Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\autorename_libavcodec_aarch64_fft_neon.S(1): ошибка A2003: неправильный синтаксис строки: / // Файл создан автоматически. См. Crbug.com/495833. D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\autorename_libavcodec_aarch64_fft_neon.S(2): ошибка A2230: недопустимая директива препроцессора; распознается только "#line [имя_файла]", включая "fft_neon.S" D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\autorename_libavcodec_aarch64_fft_neon.S(3): предупреждение A4045: отсутствует директива END45: отсутствует директива END fft_neon.S" .,, [6/9] ASM obj/third_party/ffmpeg/ffmpeg_internal/mpegaudiodsp_neon.obj FAILED: obj/third_party/ffmpeg/ffmpeg_internal/mpegaudiodsp_neon.obj D:/Work/Chromthon_ot_to_to_p_in_py_pto../../build/toolchain/win/tool_wrapper.py asm-wrapper environment.arm64 armasm64.exe /Foobj/third_party/ffmpeg/ffmpeg_internal/mpegaudiodsp_neon.obj ../../third_party/ffmpeg/libavcodeca mpegaudiodsp_neon.S Microsoft (R) ARM Macro Assembler Версия 14.16.26926.0 для 64 битов D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(1): синтаксис ошибки:200200 / / * D: \ Work \ Chromium_FFmpeg \ chromium \ src \ third_party \ ffmpeg \ libavcodec \ aarch64 \ mpegaudiodsp_neon.S (2): ошибка A2079: неправильный синтаксис строки; ожидаемый символ * Copyright (c) 2014 Янне Грунау D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(3): ошибка A2079: неправильный синтаксис строки; ожидается символ * D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(4): ошибка A2079: неправильный синтаксис строки; ожидается символ * Этот файл является частью FFmpeg. D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(5): ошибка A2079: неправильный синтаксис строки; ожидается символ * D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(6): ошибка A2079: неправильный синтаксис строки; ожидается символ * FFmpeg - свободное программное обеспечение; вы можете распространять его и / или D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(7): ошибка A2079: неправильный синтаксис строки; символ ожидается * изменить его в соответствии с условиями GNU Lesser General Public D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(8): ошибка A2079: неправильный синтаксис строки; ожидается символ * Лицензия, опубликованная Фондом свободного программного обеспечения; либо D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(9): ошибка A2079: неправильный синтаксис строки; ожидается символ * версии 2.1 Лицензии или (по вашему выбору) любой более поздней версии. D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(10): ошибка A2079: неправильный синтаксис строки; ожидается символ * D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(11): ошибка A2079: неправильный синтаксис строки; ожидаемый символ * FFmpeg распространяется в надежде, что он будет полезен, D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(12): ошибка A2079: неправильный синтаксис строки; символ ожидается * но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; без даже подразумеваемой гарантии D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(13): ошибка A2079: неправильный синтаксис строки; ожидаемый символ * ТОВАРНАЯ ДОСТУПНОСТЬ или ПРИГОДНОСТЬ ДЛЯ ОСОБЕННОЙ ЦЕЛИ. См. GNU D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(14): ошибка A2079: неправильный синтаксис строки; ожидается символ * Малая общедоступная лицензия для более подробной информации. D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(15): ошибка A2079: неправильный синтаксис строки; ожидается символ * D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(16): ошибка A2079: неправильный синтаксис строки; ожидается символ * Вы должны были получить копию GNU Lesser General Public D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(17): ошибка A2079: неправильный синтаксис строки; ожидается символ * Лицензия вместе с FFmpeg; если нет, напишите в Свободное программное обеспечение D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(18): ошибка A2079: неправильный синтаксис строки; ожидается символ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(19): ошибка A2079: неправильный синтаксис строки; ожидается символ */ D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(21): ошибка A2230: недопустимая директива препроцессора; распознается только "#line [имя файла]", включая "libavutil/aarch64/asm.S" D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(23): ошибка A2230: незаконно директива препроцессора; распознается только "#line [имя_файла]". Определите FRAC_BITS 23 // дробные биты для sb_samples и dct D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(24): ошибка A2230: Недопустимая директива препроцессора; распознается только "#line [имя_файла]". Определить WFRAC_BITS 16 // дробные биты для окна D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(25): ошибка A2230: незаконный препроцесс директива; только "#line [имя файла]" признан определить OUT_SHIFT (WFRAC_BITS + FRAC_BITS - 15) D:\Work\Chromium_FFmpeg\ хром \ SRC \ THIRD_PARTY \ FFmpeg \ кодеком \aarch64\mpegaudiodsp_neon.S(27): ошибка A2034: неизвестно опкод: tbl_rev128_s const tbl_rev128_s, выровнять =4 D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(28): ошибка A2034: неизвестный код операции:..byte 12, 13, 14, 15 D: \ Work \ Chromium_FFmpeg \ chromium \ src \ third_party \ ffmpeg \ libavcodec \ aarch64 \ mpegaudiodsp_neon.S (29): ошибка A2034: неизвестный код операции: . .byte 8, 9, 10, 11 D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(30): ошибка A2034: неизвестный код операции: . .byte 4, 5, 6, 7 D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(31): ошибка A2034: неизвестный код операции: . .byte 0, 1, 2, 3 D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(34): ошибка A2003: неправильный синтаксис строки:..macro тип apply_window, st D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(35): ошибка A2034: неизвестный код операции: ff_mpadsp_apply_window_ function_won__name_fon__file_f_f___f___f_t___f___f___f__f__f__f__f_ D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(42): ошибка A2034: неизвестный код операции: movrel movrel x15, tbl_rev128_s D:\Work\Chromium_FF \ s_ympysg ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(44): ошибка A2003: неправильный синтаксис строки: . .ifc \type, исправлено D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(46): ошибка A2003: неправильный синтаксис строки: . .else D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(48): ошибка A2003: неправильный синтаксис строки: . .endif D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(53): ошибка A2173: синтаксическая ошибка в выражении sub x5, x5, x4 // samples2 D:\Work\Chromium_FFmg \ chromium \ src \ third_party \ ffmpeg \ libavcodec \ aarch64 \ mpegaudiodsp_neon.S (53): ошибка A2003: неправильный синтаксис строки: операнды анализа неполадок sub x5, x5, x4 // samples2 D:\Work\Chromium_FFmpeg\chromium\scc third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(54): ошибка A2173: синтаксическая ошибка в выражении neg x13, x4 // -incr D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcode_ \ 64.S (54): ошибка A2003: неправильный синтаксис строки: операнды анализа неполадок neg x13, x4 // -incr D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(56): ошибка A2003: неправильный синтаксис строки: . .ifc \type, исправлено D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(57): ошибка A2173: синтаксическая ошибка в выражении ld1r {v16.2s}, [x2] // dither_state D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(57): ошибка A2003: неправильный синтаксис строки: проблемный синтаксический анализ операндов ld1r {v16.2s}, [x2] dither_state D:\Work\Chromium_FFmpeg\chromium\src\third_party\ffmpeg\libavcodec\aarch64\mpegaudiodsp_neon.S(60): ошибка A2061: недопустимый тип выражения; ожидаемое абсолютное числовое значение movi v30.2d, #(1 <ошибка A2034: неизвестный код операции: MLA2 MLA2 v17, v2, v0 D: \ Work \ Chromium_FFmpeg \ chromium \ src \ third_party \ ffmpeg \ libavcodec \ aarch64 \ mpegaudiodsp_neon.S (93): ошибка A2034: неизвестный код операции: MLS2 MLS2 v19, v3, v6 D: \ Work \ Chromium_FFmpeg \ chromium \ src \ third_party \ ffmpeg \ libavcodec \ aarch64 \ mpegaudiodsp_neon.S (95): ошибка A2034: неизвестный код операции: MLS2 MLS2 v4, v7 D: \ Work \ Chromium_FFmpeg \ chromium \ src \ third_party \ ffmpeg \ libavcodec \ aarch64 \ mpegaudiodsp_neon.S (97): ошибка A2034: неизвестный код операции: MLS2 MLS2 v19, v5, v1 D: \ Work \ Chromium_FF \ src \ third_party \ ffmpeg \ libavcodec \ aarch64 \ mpegaudiodsp_neon.S (98): ошибка A2034: неизвестный код операции:. b.gt 2b D: \ Work \ Chromium_FFmpeg \ chromium \ src \ third_party \ ffmpeg \ libavcode_ \.od.64 S (101): ошибка A2173: синтаксическая ошибка в выражении sub x10, x10, # 64 << 5 // 64 * 8 * sizeof (int32_t) D: \ Work \ Chromium_FFmpeg \ chromium \ src \ third_party \ ffmpeg \ libavcodec \ aarch64 \ mpegaudiodsp_neon.S (101): ошибка A2003: impr Синтаксис рабочей строки: Операнды разбора неполадок sub x10, x10, # 64 << 5 // 64 * 8 * sizeof (int32_t) D: \ Work \ Chromium_FFmpeg \ chromium \ src \ third_party \ ffmpeg \ libavcodec \ aarch64 \ mpegaudiodsp_neon.S (103): ошибка A2003: неправильный синтаксис строки: . .ifc \type, исправлено D: \ Work \ Chromium_FFmpeg \ chromium \ src \ third_party \ ffmpeg \ libavcodec \ aarch64 \ mpegaudiodsp_neon.S (105): ошибка A2034: неизвестный код операции: ext ext v28.16b, v29.16b, v28. 16б, № 8.,,

1 ответ

Я полагаю, что FFmpeg уже работает для конфигурации Linux/Aarch64 (возможно, с использованием ассемблера GNU), и в этом случае тот же код ассемблера также должен работать и для Microsoft ARM Macro Assembler.

Microsoft Arm Assembler использует синтаксис, отличный от GNU Assembler, похожий, но не совсем такой же, как синтаксис, используемый armasm. Они не совместимы.

Другие вопросы по тегам