opusfile 0.10 - неопределенные ссылки при выполнении Makefile - PullRequest
0 голосов
/ 18 декабря 2018

Я собирался статически построить необходимые зависимости для SDL2_mixer с помощью MSYS2 и нативной mingw-w64 на Windows 10 .
Почти все прошло гладко, за исключением opusfile-0.10 :

make  all-am
make[1]: Entering directory '/c/Users/Test/Desktop/opusfile'
  CC       examples/opusfile_example.o
  CC       examples/win32utf8.o
examples/win32utf8.c: In function 'win32_utf8_setup':
examples/win32utf8.c:81:28: warning: cast between incompatible function types from 'FARPROC' {aka 'long long int (*)()'} to 'WCHAR ** (*)(const WCHAR *, int *)' {aka 'short unsigned int ** (*)(const short unsigned int *, int *)'} [-Wcast-function-type]
     command_line_to_argv_w=(command_line_to_argv_w_func)GetProcAddress(hlib,
                            ^
  CC       src/libopusurl_la-http.lo
In file included from C:/Users/Test/Desktop/openssl-1.0.2l/include/openssl/ssl.h:152,
                 from src/http.c:216:
src/http.c: In function 'op_bio_retry_ctrl':
C:/Users/Test/Desktop/openssl-1.0.2l/include/openssl/bio.h:254:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY))
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/Users/Test/Desktop/openssl-1.0.2l/include/openssl/bio.h:254:17: note: in definition of macro 'BIO_clear_retry_flags'
                 BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY))
                 ^~~~~~~~~~~~~~~
src/http.c:1522:5: note: here
     case BIO_CTRL_EOF:
     ^~~~
  CC       src/libopusurl_la-internal.lo
  CC       src/libopusurl_la-wincerts.lo
  CC       src/info.lo
  CC       src/internal.lo
  CC       src/opusfile.lo
  CC       src/stream.lo
  CCLD     libopusfile.la
  CCLD     libopusurl.la
  CCLD     examples/opusfile_example.exe
C:/Users/Test/Desktop/openssl-1.0.2l/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xd7a): undefined reference to `__imp_GetDeviceCaps'
C:/Users/Test/Desktop/openssl-1.0.2l/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xda6): undefined reference to `__imp_CreateCompatibleBitmap'
C:/Users/Test/Desktop/openssl-1.0.2l/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xdbc): undefined reference to `__imp_GetObjectW'
C:/Users/Test/Desktop/openssl-1.0.2l/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xe89): undefined reference to `__imp_GetDIBits'
C:/Users/Test/Desktop/openssl-1.0.2l/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xed4): undefined reference to `__imp_DeleteObject'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [Makefile:612: examples/opusfile_example.exe] Error 1
make[1]: Leaving directory '/c/Users/Test/Desktop/opusfile'
make: *** [Makefile:471: all] Error 2

Что я должен сделать, чтобы избавиться от этой undefined reference to какой-то части?

...