首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将应用程序从linux移植到windows,尝试使用mingw构建,并在windows上链接失败。

将应用程序从linux移植到windows,尝试使用mingw构建,并在windows上链接失败。
EN

Stack Overflow用户
提问于 2022-04-13 22:56:03
回答 1查看 48关注 0票数 0

我是个新手,想要移植一个应用程序,我已经在miniupnpc上构建了一个应用程序。该应用程序在linux上运行良好,但由于链接错误,无法在windows上编译它。

我使用mingw64 (通过msys2安装),并安装了以下库:

代码语言:javascript
运行
复制
pacman -S base-devel mingw-w64-x86_64-toolchain
pacman -S mingw-w64-x86_64-miniupnpc

问:我不知道我错过了什么是造成这个链接错误。有什么提示可以帮助我解决这个问题并让我的应用程序成功构建??

错误:

代码语言:javascript
运行
复制
gcc -o ../bin/pjmedia-test-x86_64-w64-mingw32 \
     output/pjmedia-test-x86_64-w64-mingw32/codec_vectors.o  output/pjmedia-test-x86_64-w64-mingw32/jbuf_test.o  output/pjmedia-test-x86_64-w64-mingw32/main.o  output/pjmedia-test-x86_64-w64-mingw32/mips_test.o  output/pjmedia-test-x86_64-w64-mingw32/vid_codec_test.o  output/pjmedia-test-x86_64-w64-mingw32/vid_dev_test.o  output/pjmedia-test-x86_64-w64-mingw32/vid_port_test.o  output/pjmedia-test-x86_64-w64-mingw32/rtp_test.o  output/pjmedia-test-x86_64-w64-mingw32/test.o  output/pjmedia-test-x86_64-w64-mingw32/sdp_neg_test.o -lpjmedia-codec-x86_64-w64-mingw32 -lpjmedia-videodev-x86_64-w64-mingw32 -lpjmedia-audiodev-x86_64-w64-mingw32 -lpjmedia-x86_64-w64-mingw32 -lpjnath-x86_64-w64-mingw32 -lpjlib-util-x86_64-w64-mingw32 -lpj-x86_64-w64-mingw32 -lsrtp-x86_64-w64-mingw32 -lresample-x86_64-w64-mingw32 -lgsmcodec-x86_64-w64-mingw32 -lspeex-x86_64-w64-mingw32 -lilbccodec-x86_64-w64-mingw32 -lg7221codec-x86_64-w64-mingw32 -lyuv-x86_64-w64-mingw32 -lminiupnpc-x86_64-w64-mingw32 -lwebrtc-x86_64-w64-mingw32 -lbaseclasses-x86_64-w64-mingw32   -lssl -lcrypto -lopenh264 -lstdc++ -lm -lwinmm -lole32 -lws2_32 -lwsock32 -lpthread  -lstdc++ -lquartz -lole32 -loleaut32 -lrpcrt4 -lwinmm -luuid -lmingwex -lstrmiids  -LC:/msys64/mingw64/lib -lmingw32 -lSDL2main -lSDL2      -LC:/workspace/pjsip/pjlib/lib -LC:/workspace/pjsip/pjlib-util/lib -LC:/workspace/pjsip/pjnath/lib -LC:/workspace/pjsip/pjmedia/lib -LC:/workspace/pjsip/pjsip/lib -LC:/workspace/pjsip/third_party/lib -LC:/msys64/mingw64/lib -lmingw32 -lSDL2main -lSDL2    -lstdc++ -lquartz -lole32 -loleaut32 -lrpcrt4 -lwinmm -luuid -lmingwex -lstrmiids  -lopenh264 -lstdc++  -LC:/msys64/mingw64/lib -lmingw32 -lSDL2main -lSDL2    -lstdc++ -lquartz -lole32 -loleaut32 -lrpcrt4 -lwinmm -luuid -lmingwex -lstrmiids  -lopenh264 -lstdc++   -LC:/msys64/mingw64/lib -lmingw32 -lSDL2main -lSDL2    -lstdc++ -lquartz -lole32 -loleaut32 -lrpcrt4 -lwinmm -luuid -lmingwex -lstrmiids  -lopenh264 -lstdc++
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text+0x86): undefined reference to `__imp_UPNP_GetConnectionTypeInfo'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text+0xc3): undefined reference to `__imp_UPNP_GetStatusInfo'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text+0xfe): undefined reference to `__imp_UPNP_GetLinkLayerMaxBitRates'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text+0x122): undefined reference to `__imp_UPNP_GetExternalIPAddress'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text+0x4be): undefined reference to `__imp_UPNP_GetExternalIPAddress'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text+0x531): undefined reference to `__imp_UPNP_AddAnyPortMapping'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text+0x58e): undefined reference to `__imp_UPNP_GetSpecificPortMappingEntry'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text+0x64a): undefined reference to `__imp_UPNP_AddPortMapping'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text+0x663): undefined reference to `__imp_strupnperror'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text+0x698): undefined reference to `__imp_strupnperror'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text+0x6f4): undefined reference to `__imp_strupnperror'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x53c): undefined reference to `__imp_UPNP_GetIGDFromUrl'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x57c): undefined reference to `__imp_UPNP_GetValidIGD'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x60b): undefined reference to `__imp_FreeUPNPUrls'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x616): undefined reference to `__imp_freeUPNPDevlist'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x8d6): undefined reference to `__imp_upnpDiscover'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xa37): undefined reference to `__imp_UPNP_GetTotalBytesSent'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xa4b): undefined reference to `__imp_UPNP_GetTotalBytesReceived'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xa5f): undefined reference to `__imp_UPNP_GetTotalPacketsSent'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xa73): undefined reference to `__imp_UPNP_GetTotalPacketsReceived'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xc0f): undefined reference to `__imp_UPNP_DeletePortMappingRange'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xc76): undefined reference to `__imp_UPNP_GetListOfPortMappings'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xd1a): undefined reference to `__imp_FreePortListing'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xdc1): undefined reference to `__imp_FreePortListing'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xdce): undefined reference to `__imp_strupnperror'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xdef): undefined reference to `__imp_UPNP_GetPinholePackets'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xdf6): undefined reference to `__imp_strupnperror'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xf0a): undefined reference to `__imp_UPNP_GetOutboundPinholeTimeout'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xf1c): undefined reference to `__imp_strupnperror'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xf6a): undefined reference to `__imp_UPNP_DeletePinhole'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0xfce): undefined reference to `__imp_UPNP_CheckPinholeWorking'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x104b): undefined reference to `__imp_strupnperror'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x117e): undefined reference to `__imp_UPNP_AddPinhole'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x1190): undefined reference to `__imp_strupnperror'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x120c): undefined reference to `__imp_UPNP_DeletePortMapping'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x130a): undefined reference to `__imp_UPNP_CheckPinholeWorking'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x136a): undefined reference to `__imp_UPNP_UpdatePinhole'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x138e): undefined reference to `__imp_strupnperror'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x13ec): undefined reference to `__imp_UPNP_GetFirewallStatus'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x144d): undefined reference to `__imp_UPNP_GetTotalBytesSent'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x1461): undefined reference to `__imp_UPNP_GetTotalBytesReceived'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x1475): undefined reference to `__imp_UPNP_GetTotalPacketsSent'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x1489): undefined reference to `__imp_UPNP_GetTotalPacketsReceived'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x1670): undefined reference to `__imp_UPNP_GetGenericPortMappingEntry'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x1680): undefined reference to `__imp_strupnperror'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x177a): undefined reference to `__imp_strupnperror'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/workspace/pjsip/third_party/lib/libminiupnpc-x86_64-w64-mingw32.a(upnpc.o):upnpc.c:(.text.startup+0x179f): undefined reference to `__imp_strupnperror'
collect2.exe: error: ld returned 1 exit status
make[2]: *** [C:/workspace/pjsip/build/rules.mak:125: ../bin/pjmedia-test-x86_64-w64-mingw32] Error 1
make[2]: Leaving directory '/c/workspace/pjsip/pjmedia/build'
make[1]: *** [Makefile:245: pjmedia-test-x86_64-w64-mingw32] Error 2
make[1]: Leaving directory '/c/workspace/pjsip/pjmedia/build'
make: *** [Makefile:14: all] Error 1
EN

回答 1

Stack Overflow用户

发布于 2022-04-20 18:25:33

你可以链接到-lminiupnpc-x86_64-w64-mingw32。你有libminiupnpc-x86_64-w64-mingw32.dll.a,还是只有libminiupnpc-x86_64-w64-mingw32.a?因为这个错误表明它试图链接到dllimported符号..。

如果您想要使用静态库,可以通过添加编译器标志-DMINIUPNP_STATICLIB来告诉miniupnpc头文件使用静态符号来解决这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71864639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档