Compiling gst-build with MSVC 2017 compiler gives error while creating library of ffmpeg/avcodec.lib
Hello, I was trying to compile gstreamer with meson on Windows Msvc 2017 x64 compiler. I received this error. Since, it was coming rom FFmpeg/avcodec.lib I think this issue will be appropriate on here.
I am guessing you include winsock.h or winsock2.h or visa versa in somewhere on your code.
[5014/6223] Compiling C object subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_avio.c.obj.
../subprojects/FFmpeg/libavformat/avio.c(276): warning C4090: 'function': different 'const' qualifiers
[5015/6223] Compiling C object subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_protocols.c.obj.
../subprojects/FFmpeg/libavformat/protocols.c(99): warning C4090: '=': different 'const' qualifiers
[5018/6223] Compiling C object subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_id3v2.c.obj.
../subprojects/FFmpeg/libavformat/id3v2.c(347): warning C4090: 'function': different 'const' qualifiers
[5054/6223] Linking static target subprojects/FFmpeg/libavcodec-static.a.
v210enc.o : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
[5119/6223] Linking target subprojects/FFmpeg/avcodec-58.dll.
Creating library subprojects\\FFmpeg\\avcodec.lib and object subprojects\\FFmpeg\\avcodec.exp
[5200/6223] Compiling C object subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_hlsenc.c.obj.
FAILED: subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_hlsenc.c.obj
cl @subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_hlsenc.c.obj.rsp
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared\ws2def.h(103): warning C4005: 'AF_IPX': macro redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(456): note: see previous definition of 'AF_IPX'C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared\ws2def.h(235): error C2011: 'sockaddr': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(481): note: see declaration of 'sockaddr'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared\ws2def.h(437): error C2059: syntax error: 'constant'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared\ws2def.h(633): error C2011: 'sockaddr_in': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(308): note: see declaration of 'sockaddr_in'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(136): error C2011: 'fd_set': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(64): note: see declaration of 'fd_set'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(180): error C2011: 'timeval': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(107): note: see declaration of 'timeval'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(236): error C2011: 'hostent': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(163): note: see declaration of 'hostent'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(249): error C2011: 'netent': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(176): note: see declaration of 'netent'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(256): error C2011: 'servent': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(183): note: see declaration of 'servent'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(268): error C2011: 'protoent': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(195): note: see declaration of 'protoent'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(364): error C2011: 'WSAData': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(318): note: see declaration of 'WSAData'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(462): error C2011: 'sockproto': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(490): note: see declaration of 'sockproto'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(504): error C2011: 'linger': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(527): note: see declaration of 'linger'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1625): error C2375: 'accept': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(738): note: see declaration of 'accept'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1647): error C2375: 'bind': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(743): note: see declaration of 'bind'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1668): error C2375: 'closesocket': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(748): note: see declaration of 'closesocket'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1685): error C2375: 'connect': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(750): note: see declaration of 'connect'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1706): error C2375: 'ioctlsocket': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(755): note: see declaration of 'ioctlsocket'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1729): error C2375: 'getpeername': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(760): note: see declaration of 'getpeername'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1750): error C2375: 'getsockname': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(765): note: see declaration of 'getsockname'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1771): error C2375: 'getsockopt': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(770): note: see declaration of 'getsockopt'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1796): error C2375: 'htonl': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(777): note: see declaration of 'htonl'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1813): error C2375: 'htons': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(779): note: see declaration of 'htons'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1831): error C2375: 'inet_addr': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(781): note: see declaration of 'inet_addr'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1849): error C2375: 'inet_ntoa': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(783): note: see declaration of 'inet_ntoa'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1949): error C2375: 'listen': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(785): note: see declaration of 'listen'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1968): error C2375: 'ntohl': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(789): note: see declaration of 'ntohl'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(1985): error C2375: 'ntohs': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(791): note: see declaration of 'ntohs'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2002): error C2375: 'recv': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(793): note: see declaration of 'recv'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2025): error C2375: 'recvfrom': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(799): note: see declaration of 'recvfrom'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2052): error C2375: 'select': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(807): note: see declaration of 'select'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2077): error C2375: 'send': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(814): note: see declaration of 'send'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2100): error C2375: 'sendto': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(820): note: see declaration of 'sendto'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2127): error C2375: 'setsockopt': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(828): note: see declaration of 'setsockopt'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2152): error C2375: 'shutdown': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(835): note: see declaration of 'shutdown'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2172): error C2375: 'socket': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(839): note: see declaration of 'socket'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2197): error C2375: 'gethostbyaddr': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(846): note: see declaration of 'gethostbyaddr'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2219): error C2375: 'gethostbyname': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(851): note: see declaration of 'gethostbyname'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2236): error C2375: 'gethostname': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(853): note: see declaration of 'gethostname'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2276): error C2375: 'getservbyport': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(857): note: see declaration of 'getservbyport'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2295): error C2375: 'getservbyname': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(861): note: see declaration of 'getservbyname'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2314): error C2375: 'getprotobynumber': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(865): note: see declaration of 'getprotobynumber'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2331): error C2375: 'getprotobyname': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(867): note: see declaration of 'getprotobyname'C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2351): error C2375: 'WSAStartup': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(871): note: see declaration of 'WSAStartup'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2371): error C2375: 'WSACleanup': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(875): note: see declaration of 'WSACleanup'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2388): error C2375: 'WSASetLastError': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(877): note: see declaration of 'WSASetLastError'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2405): error C2375: 'WSAGetLastError': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(879): note: see declaration of 'WSAGetLastError'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2426): error C2375: 'WSAIsBlocking': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(881): note: see declaration of 'WSAIsBlocking'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2444): error C2375: 'WSAUnhookBlockingHook': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(883): note: see declaration of 'WSAUnhookBlockingHook'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2462): error C2375: 'WSASetBlockingHook': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(885): note: see declaration of 'WSASetBlockingHook'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2480): error C2375: 'WSACancelBlockingCall': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(887): note: see declaration of 'WSACancelBlockingCall'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2498): error C2375: 'WSAAsyncGetServByName': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(889): note: see declaration of 'WSAAsyncGetServByName'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2526): error C2375: 'WSAAsyncGetServByPort': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(897): note: see declaration of 'WSAAsyncGetServByPort'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2554): error C2375: 'WSAAsyncGetProtoByName': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(905): note: see declaration of 'WSAAsyncGetProtoByName'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2580): error C2375: 'WSAAsyncGetProtoByNumber': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(912): note: see declaration of 'WSAAsyncGetProtoByNumber'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2606): error C2375: 'WSAAsyncGetHostByName': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(919): note: see declaration of 'WSAAsyncGetHostByName'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2632): error C2375: 'WSAAsyncGetHostByAddr': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(926): note: see declaration of 'WSAAsyncGetHostByAddr'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2662): error C2375: 'WSACancelAsyncRequest': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(935): note: see declaration of 'WSACancelAsyncRequest'
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock2.h(2680): error C2375: 'WSAAsyncSelect': redefinition; different linkage
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um\winsock.h(937): note: see declaration of 'WSAAsyncSelect'[5209/6223] Compiling C object subprojects/FFmpeg/00cc031@@avformat-static@sta/libavformat_rmdec.c.obj.
ninja: build stopped: subcommand failed.
I shouldn't modify winsock or w2def.h or any Windows header file so any help would be appreciated. Thanks,