Согласно ответу на этот вопрос, первый метод говорит, что вы можете собрать его из исходного кода (предоставленного в папке 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»
Спасибо.