libliveMedia throwing undefined reference errors when linking __imp_XXXXXX

468 views Asked by At

I'm trying to compile my program to Windows x64 (coming from x32) After I've built all the dependencies and the libraries I needed, I get the following errors:

C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:MPEG1or2VideoRTPSource.cpp:(.text+0xf6fc): undefined reference to `__imp_ntohl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:MPEG1or2VideoRTPSource.cpp:(.text+0xf744): undefined reference to `__imp_ntohl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:MediaSink.cpp:(.text+0x14e18): undefined reference to `__imp_htonl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:MediaSink.cpp:(.text+0x14e94): undefined reference to `__imp_htonl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:MediaSink.cpp:(.text+0x14f11): undefined reference to `__imp_ntohl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:uLawAudioFilter.cpp:(.text+0x1bf73): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:MultiFramedRTPSource.cpp:(.text+0x1d770): undefined reference to `__imp_ntohl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:MultiFramedRTPSource.cpp:(.text+0x1d870): undefined reference to `__imp_ntohl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTPInterface.c:(.text+0x22fde): undefined reference to `__imp_send'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTPInterface.c:(.text+0x23050): undefined reference to `__imp_send'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTCP.cpp:(.text+0x2394a): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTCP.cpp:(.text+0x23d93): undefined reference to `__imp_ntohl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTCP.cpp:(.text+0x23e8f): undefined reference to `__imp_ntohl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTCP.cpp:(.text+0x23f15): undefined reference to `__imp_ntohl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTCP.cpp:(.text+0x23f22): undefined reference to `__imp_ntohl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTCP.cpp:(.text+0x23f2d): undefined reference to `__imp_ntohl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTCP.cpp:(.text+0x23f38): more undefined references to `__imp_ntohl' follow
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPServer.cpp:(.text+0x26ff7): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPServer.cpp:(.text+0x270ea): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPServer.cpp:(.text+0x2827c): undefined reference to `__imp_send'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPServer.cpp:(.text+0x28c76): undefined reference to `__imp_getsockname'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPServer.cpp:(.text+0x28cbc): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPServer.cpp:(.text+0x2a09f): undefined reference to `__imp_getsockname'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPServer.cpp:(.text+0x2a2c2): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPServer.cpp:(.text+0x2a2d3): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPServer.cpp:(.text+0x2a391): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPServer.cpp:(.text+0x2a43b): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPServer.cpp:(.text+0x2a44d): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPServer.cpp:(.text+0x2a45e): more undefined references to `__imp_ntohs' follow
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPClient.cpp:(.text+0x2cad1): undefined reference to `__imp_send'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPClient.cpp:(.text+0x2dffc): undefined reference to `__imp_getsockopt'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:RTSPClient.cpp:(.text+0x2f4af): undefined reference to `__imp_connect'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:SIPClient.cpp:(.text+0x33e0b): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:MediaSession.c:(.text+0x36cfe): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:PassiveServerMediaSubsession.cpp:(.text+0x390c7): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:OnDemandServerMediaSubsession.cpp:(.text+0x3a465): undefined reference to `__imp_ntohs'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x559ad): undefined reference to `SSL_write'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x559c3): undefined reference to `SSL_read'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x559d8): undefined reference to `SSL_get_error'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x55a07): undefined reference to `OPENSSL_init_ssl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x55a2c): undefined reference to `SSL_free'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x55a42): undefined reference to `SSL_CTX_free'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x55a59): undefined reference to `SSL_shutdown'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x55b4b): undefined reference to `TLS_client_method'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x55b58): undefined reference to `SSL_CTX_new'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x55b69): undefined reference to `SSL_new'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x55b7e): undefined reference to `BIO_new_socket'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x55b8d): undefined reference to `SSL_set_bio'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x55b96): undefined reference to `SSL_set_connect_state'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libraries\libliveMedia.a:TLSState.cpp:(.text+0x55bde): undefined reference to `SSL_connect'

And this is the command that Code::Blocks is using:

g++.exe -o bin\Debug\OpenTextProjector.exe obj\Debug\libraries\base64.o obj\Debug\libraries\tinythread.o obj\Debug\main.o obj\Debug\ScreenSource.o   -lopengl32 -lglu32 -lwinmm -lgdi32 -lwsock32 -lws2_32 libraries\libglfw3.a libraries\libglfw3dll.a libraries\libopengl32.a libraries\libws2_32.a libraries\libglew32.a libraries\libglew32.dll.a libraries\libswscale.dll.a libraries\libavutil.dll.a libraries\libavcodec.dll.a libraries\libfreetype.dll.a libraries\libfreetype.a libraries\libliveMedia.a libraries\libgroupsock.a libraries\libBasicUsageEnvironment.a libraries\libUsageEnvironment.a

As you can probably tell by now, I'm using MinGW to compile (MSYS2).

Here's the output of some other commands that might help you understand the question better:

C:\Users\Benny>g++ --version
g++ (Rev8, Built by MSYS2 project) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


C:\Users\Benny>ld --version
GNU ld (GNU Binutils) 2.37
Copyright (C) 2021 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.

If you're interested in the code, here you can find my GitHub Repository.

I've tried numerous fixes from the internet, but I still don't get why I'm having this issue. any help would be greatly appreciated. Thank you!

1

There are 1 answers

0
benny b On

After hours of researching, I was just adding the libraries in the wrong order... The ws2_32 library should be last. Here's the command:

g++.exe  -o bin\Debug\OpenTextProjector.exe obj\Debug\libraries\base64.o obj\Debug\libraries\tinythread.o obj\Debug\main.o obj\Debug\ScreenSource.o   -lopengl32 -lglu32 -lwinmm -lgdi32 libraries\libglfw3.a libraries\libglfw3dll.a libraries\libopengl32.a libraries\libglew32.a libraries\libglew32.dll.a libraries\libswscale.dll.a libraries\libavutil.dll.a libraries\libavcodec.dll.a libraries\libfreetype.dll.a libraries\libfreetype.a libraries\libliveMedia.a libraries\libgroupsock.a libraries\libBasicUsageEnvironment.a libraries\libUsageEnvironment.a -lws2_32 -lssl -lcrypto

As you can see, the last libraries that I've added are the ones that created the errors. So for anyone who will have the same problem: Check the order of your libraries!