I'm trying to implement a steganography scheme in Opus audio file using pulse data from the opus bitstream. I've installed the source code for the Opus codec, and I realized that I only need the SILK part for my requirements. I need to compile some C files from the source code in order to execute them from my Python script.
Now, I've tried compiling the "decode_pulses.c" and "encode_pulses.c" files from the SILK source code with GCC, but I keep facing the same error over and over again. When I try compiling the "decode_pulses.c" file, for example, I get the following error message from GCC:
C:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: \AppData\Local\Temp\ccI9UV4i.o:decode_pulses.c:(.text+0x5c): undefined reference to ec_dec_icdf' C:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: <some-path>\AppData\Local\Temp\ccI9UV4i.o:decode_pulses.c:(.text+0xd0): undefined reference to
ec_dec_icdf'
C:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: \AppData\Local\Temp\ccI9UV4i.o:decode_pulses.c:(.text+0x130): undefined reference to ec_dec_icdf' C:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: <some-path>\AppData\Local\Temp\ccI9UV4i.o:decode_pulses.c:(.text+0x1a0): undefined reference to
silk_shell_decoder'
C:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: \AppData\Local\Temp\ccI9UV4i.o:decode_pulses.c:(.text+0x266): undefined reference to ec_dec_icdf' C:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: <some-path>\AppData\Local\Temp\ccI9UV4i.o:decode_pulses.c:(.text+0x2fa): undefined reference to
silk_decode_signs'
C:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: \AppData\Local\Temp\ccI9UV4i.o:decode_pulses.c:(.rdata$.refptr.silk_lsb_iCDF[.refptr.silk_lsb_iCDF]+0x0): undefined reference to silk_lsb_iCDF' C:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: <some-path>\AppData\Local\Temp\ccI9UV4i.o:decode_pulses.c:(.rdata$.refptr.silk_pulses_per_block_iCDF[.refptr.silk_pulses_per_block_iCDF]+0x0): undefined reference to
silk_pulses_per_block_iCDF'
C:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: \AppData\Local\Temp\ccI9UV4i.o:decode_pulses.c:(.rdata$.refptr.silk_rate_levels_iCDF[.refptr.silk_rate_levels_iCDF]+0x0): undefined reference to silk_rate_levels_iCDF' C:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/gcc/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_c.o): in function
main':
C:/crossdev/src/mingw-w64-v8-git/mingw-w64-crt/crt/crt0_c.c:18: undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status
I understand that the problem is missing references, such as function definitions, but I don't know how to fix these undefined references. Also, there is no header file error, so I can assume that all needed headers are included without any problem.
Can someone explain to me what this error message is and how to resolve it? Recall that my goal is to compile the "decode_pulses.c" file from the SILK codec source code in order to execute it from my Python script.
Thanks!