Как собрать libmpg123, используя порт Visual C ++ с YASM? - PullRequest
0 голосов
/ 25 августа 2018

Согласно ответу на этот вопрос, первый метод говорит, что вы можете собрать его из исходного кода (предоставленного в папке ports ), которыйболее гибкий, чем второй вариант (который может генерировать только динамическую библиотеку, а не static one).

Мне, зная, что я хочу статически скомпилировать Mpg123 для SDL2, придется пройтиэтот так называемый болезненный метод для извлечения из него статической библиотеки (только .lib, а не .dll).

Я установил YASM и настроил его в средепеременные как говорится и пытались собрать исходный код.К сожалению, для меня это оказалось сбой ( очевидно ).

Ошибка в форме одной ошибки ( командная строка ошибка, чтобы быть конкретным), и это чрезвычайно огромная для понимания, так что вы можете помочь мне понять эту ошибку, приведенную ниже (кажется, что нет абсолютно никакой статьи о том, как собрать mpg123 из исходного кода, что является причиной дляв конце я обращаюсь за помощью).

Здесь появляется ошибка " only " (это одиночная ошибка, но слишком сложная, чтобы поместить ее в блоки в кавычках, поэтому она находится внутрифрагмент кода ...):

Severity    Code    Description Project File    Line    Suppression State
Error   MSB3073 The command "cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\dct36_3dnow.S" /nologo     "Win32\Debug_x86\dct36_3dnow.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o  "Win32\Debug_x86\dct36_3dnow.o" "Win32\Debug_x86\dct36_3dnow.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\dct36_3dnowext.S" /nologo     "Win32\Debug_x86\dct36_3dnowext.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o  "Win32\Debug_x86\dct36_3dnowext.o" "Win32\Debug_x86\dct36_3dnowext.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\dct36_sse.S" /nologo     "Win32\Debug_x86\dct36_sse.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o  "Win32\Debug_x86\dct36_sse.o" "Win32\Debug_x86\dct36_sse.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\dct64_3dnow.S" /nologo     "Win32\Debug_x86\dct64_3dnow.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o  "Win32\Debug_x86\dct64_3dnow.o" "Win32\Debug_x86\dct64_3dnow.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\dct64_3dnowext.S" /nologo     "Win32\Debug_x86\dct64_3dnowext.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o  "Win32\Debug_x86\dct64_3dnowext.o" "Win32\Debug_x86\dct64_3dnowext.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\dct64_mmx.S" /nologo     "Win32\Debug_x86\dct64_mmx.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o  "Win32\Debug_x86\dct64_mmx.o" "Win32\Debug_x86\dct64_mmx.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\dct64_sse.S" /nologo     "Win32\Debug_x86\dct64_sse.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o  "Win32\Debug_x86\dct64_sse.o" "Win32\Debug_x86\dct64_sse.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\dct64_sse_float.S" /nologo     "Win32\Debug_x86\dct64_sse_float.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\dct64_sse_float.o" "Win32\Debug_x86\dct64_sse_float.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\equalizer_3dnow.S" /nologo     "Win32\Debug_x86\equalizer_3dnow.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\equalizer_3dnow.o" "Win32\Debug_x86\equalizer_3dnow.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\getcpuflags.S" /nologo     "Win32\Debug_x86\getcpuflags.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\getcpuflags.o" "Win32\Debug_x86\getcpuflags.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\synth_3dnow.S" /nologo     "Win32\Debug_x86\synth_3dnow.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\synth_3dnow.o" "Win32\Debug_x86\synth_3dnow.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\synth_3dnowext.S" /nologo     "Win32\Debug_x86\synth_3dnowext.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\synth_3dnowext.o" "Win32\Debug_x86\synth_3dnowext.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\synth_i586.S" /nologo     "Win32\Debug_x86\synth_i586.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\synth_i586.o" "Win32\Debug_x86\synth_i586.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\synth_mmx.S" /nologo     "Win32\Debug_x86\synth_mmx.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\synth_mmx.o" "Win32\Debug_x86\synth_mmx.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\synth_sse.S" /nologo     "Win32\Debug_x86\synth_sse.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\synth_sse.o" "Win32\Debug_x86\synth_sse.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\synth_sse_float.S" /nologo     "Win32\Debug_x86\synth_sse_float.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\synth_sse_float.o" "Win32\Debug_x86\synth_sse_float.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\synth_stereo_sse_float.S" /nologo     "Win32\Debug_x86\synth_stereo_sse_float.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\synth_stereo_sse_float.o" "Win32\Debug_x86\synth_stereo_sse_float.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\tabinit_mmx.S" /nologo     "Win32\Debug_x86\tabinit_mmx.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\tabinit_mmx.o" "Win32\Debug_x86\tabinit_mmx.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\synth_sse_accurate.S" /nologo     "Win32\Debug_x86\synth_sse_accurate.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\synth_sse_accurate.o" "Win32\Debug_x86\synth_sse_accurate.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\synth_sse_s32.S" /nologo     "Win32\Debug_x86\synth_sse_s32.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\synth_sse_s32.o" "Win32\Debug_x86\synth_sse_s32.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\synth_stereo_sse_accurate.S" /nologo     "Win32\Debug_x86\synth_stereo_sse_accurate.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\synth_stereo_sse_accurate.o" "Win32\Debug_x86\synth_stereo_sse_accurate.asm"

cl /I "..\..\.." /I "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src"  /EP /TC "D:\SDL2\Dependencies\mpg123-1.25.10\mpg123-1.25.10\ports\MSVC++\2015\win32\libmpg123\..\..\..\..\..\src\libmpg123\synth_stereo_sse_s32.S" /nologo     "Win32\Debug_x86\synth_stereo_sse_s32.asm"
yasm -a x86 -p gas -r raw -f win32 -g null -m x86 -o "Win32\Debug_x86\synth_stereo_sse_s32.o" "Win32\Debug_x86\synth_stereo_sse_s32.asm"

:VCEnd" exited with code 1. libmpg123   C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets 128 

Легко видеть, что ошибка связана с YASM, но я не знаю как ?

Кстати, я скачал YASM с здесь .

РЕДАКТИРОВАТЬ: Когда я действительно попытался скомпилировать все исходные файлы сборки с использованием YASMв командной строке большинство из них обычно говорит: -

ошибка: инструкция не указанараспознано: «PREPARE_GOT»
ошибка: инструкция не распознана: «GET_GOT»
ошибка: команда не распознана: «RESTORE_GOT»

Спасибо.

...