簡體   English   中英

libliveMedia 在鏈接 __imp_XXXXXX 時拋出未定義的引用錯誤

[英]libliveMedia throwing undefined reference errors when linking __imp_XXXXXX

我正在嘗試將我的程序編譯為 Windows x64(來自 x32) 在我構建了我需要的所有依賴項和庫之后,我收到以下錯誤:

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'

這是Code::Blocks使用的命令:

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

您現在可能已經知道,我正在使用 MinGW 進行編譯 (MSYS2)。

以下是一些其他命令的 output 可能會幫助您更好地理解問題:

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.

如果您對代碼感興趣,可以在這里找到我的 GitHub 存儲庫。

我已經嘗試了來自 inte.net 的許多修復程序,但我仍然不明白為什么我會遇到這個問題。 任何幫助將不勝感激。 謝謝!

經過幾個小時的研究,我只是以錯誤的順序添加了庫…… ws2_32庫應該是最后一個。 這是命令:

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

如您所見,我添加的最后一個庫是產生錯誤的庫。 所以對於任何遇到同樣問題的人:檢查你的庫的順序!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM