wasapi plugins fail to build with Visual Studio when using the Windows 8.1 SDK
@nirbheek
Submitted by Nirbheek Chauhan Link to original bug (#796928)
Description
Install Visual Studio 2015 with only the Windows 8.1 SDK selected, open a Visual Studio command line prompt, clone gst-build and build it with Meson. You'll get the following error:
ninja: Entering directory `build'
[1/130] Linking target subprojects/gst-plugins-bad/sys/wasapi/gstwasapi.dll.
FAILED: subprojects/gst-plugins-bad/sys/wasapi/gstwasapi.dll
link @subprojects/gst-plugins-bad/sys/wasapi/gstwasapi.dll.rsp
gstwasapisrc.c.obj : error LNK2005: _PKEY_AudioEndpoint_FormFactor already defined in gstwasapi.c.obj
gstwasapisrc.c.obj : error LNK2005: _PKEY_AudioEndpoint_ControlPanelPageProvider already defined in gstwasapi.c.obj
gstwasapisrc.c.obj : error LNK2005: _PKEY_AudioEndpoint_Association already defined in gstwasapi.c.obj
gstwasapisrc.c.obj : error LNK2005: _PKEY_AudioEndpoint_PhysicalSpeakers already defined in gstwasapi.c.obj
gstwasapisrc.c.obj : error LNK2005: _PKEY_AudioEndpoint_GUID already defined in gstwasapi.c.obj
gstwasapisrc.c.obj : error LNK2005: _PKEY_AudioEndpoint_Disable_SysFx already defined in gstwasapi.c.obj
gstwasapisrc.c.obj : error LNK2005: _PKEY_AudioEndpoint_FullRangeSpeakers already defined in gstwasapi.c.obj
gstwasapisrc.c.obj : error LNK2005: _PKEY_AudioEndpoint_Supports_EventDriven_Mode already defined in gstwasapi.c.obj
gstwasapisrc.c.obj : error LNK2005: _PKEY_AudioEndpoint_JackSubType already defined in gstwasapi.c.obj
gstwasapisrc.c.obj : error LNK2005: _PKEY_AudioEngine_DeviceFormat already defined in gstwasapi.c.obj
gstwasapisrc.c.obj : error LNK2005: _PKEY_AudioEngine_OEMFormat already defined in gstwasapi.c.obj
gstwasapisink.c.obj : error LNK2005: _PKEY_AudioEndpoint_FormFactor already defined in gstwasapi.c.obj
gstwasapisink.c.obj : error LNK2005: _PKEY_AudioEndpoint_ControlPanelPageProvider already defined in gstwasapi.c.obj
gstwasapisink.c.obj : error LNK2005: _PKEY_AudioEndpoint_Association already defined in gstwasapi.c.obj
gstwasapisink.c.obj : error LNK2005: _PKEY_AudioEndpoint_PhysicalSpeakers already defined in gstwasapi.c.obj
gstwasapisink.c.obj : error LNK2005: _PKEY_AudioEndpoint_GUID already defined in gstwasapi.c.obj
gstwasapisink.c.obj : error LNK2005: _PKEY_AudioEndpoint_Disable_SysFx already defined in gstwasapi.c.obj
gstwasapisink.c.obj : error LNK2005: _PKEY_AudioEndpoint_FullRangeSpeakers already defined in gstwasapi.c.obj
gstwasapisink.c.obj : error LNK2005: _PKEY_AudioEndpoint_Supports_EventDriven_Mode already defined in gstwasapi.c.obj
gstwasapisink.c.obj : error LNK2005: _PKEY_AudioEndpoint_JackSubType already defined in gstwasapi.c.obj
gstwasapisink.c.obj : error LNK2005: _PKEY_AudioEngine_DeviceFormat already defined in gstwasapi.c.obj
gstwasapisink.c.obj : error LNK2005: _PKEY_AudioEngine_OEMFormat already defined in gstwasapi.c.obj
gstwasapiutil.c.obj : error LNK2005: _PKEY_AudioEndpoint_FormFactor already defined in gstwasapi.c.obj
gstwasapiutil.c.obj : error LNK2005: _PKEY_AudioEndpoint_ControlPanelPageProvider already defined in gstwasapi.c.obj
gstwasapiutil.c.obj : error LNK2005: _PKEY_AudioEndpoint_Association already defined in gstwasapi.c.obj
gstwasapiutil.c.obj : error LNK2005: _PKEY_AudioEndpoint_PhysicalSpeakers already defined in gstwasapi.c.obj
gstwasapiutil.c.obj : error LNK2005: _PKEY_AudioEndpoint_GUID already defined in gstwasapi.c.obj
gstwasapiutil.c.obj : error LNK2005: _PKEY_AudioEndpoint_Disable_SysFx already defined in gstwasapi.c.obj
gstwasapiutil.c.obj : error LNK2005: _PKEY_AudioEndpoint_FullRangeSpeakers already defined in gstwasapi.c.obj
gstwasapiutil.c.obj : error LNK2005: _PKEY_AudioEndpoint_Supports_EventDriven_Mode already defined in gstwasapi.c.obj
gstwasapiutil.c.obj : error LNK2005: _PKEY_AudioEndpoint_JackSubType already defined in gstwasapi.c.obj
gstwasapiutil.c.obj : error LNK2005: _PKEY_AudioEngine_DeviceFormat already defined in gstwasapi.c.obj
gstwasapiutil.c.obj : error LNK2005: _PKEY_AudioEngine_OEMFormat already defined in gstwasapi.c.obj
gstwasapidevice.c.obj : error LNK2005: _PKEY_AudioEndpoint_FormFactor already defined in gstwasapi.c.obj
gstwasapidevice.c.obj : error LNK2005: _PKEY_AudioEndpoint_ControlPanelPageProvider already defined in gstwasapi.c.obj
gstwasapidevice.c.obj : error LNK2005: _PKEY_AudioEndpoint_Association already defined in gstwasapi.c.obj
gstwasapidevice.c.obj : error LNK2005: _PKEY_AudioEndpoint_PhysicalSpeakers already defined in gstwasapi.c.obj
gstwasapidevice.c.obj : error LNK2005: _PKEY_AudioEndpoint_GUID already defined in gstwasapi.c.obj
gstwasapidevice.c.obj : error LNK2005: _PKEY_AudioEndpoint_Disable_SysFx already defined in gstwasapi.c.obj
gstwasapidevice.c.obj : error LNK2005: _PKEY_AudioEndpoint_FullRangeSpeakers already defined in gstwasapi.c.obj
gstwasapidevice.c.obj : error LNK2005: _PKEY_AudioEndpoint_Supports_EventDriven_Mode already defined in gstwasapi.c.obj
gstwasapidevice.c.obj : error LNK2005: _PKEY_AudioEndpoint_JackSubType already defined in gstwasapi.c.obj
gstwasapidevice.c.obj : error LNK2005: _PKEY_AudioEngine_DeviceFormat already defined in gstwasapi.c.obj
gstwasapidevice.c.obj : error LNK2005: _PKEY_AudioEngine_OEMFormat already defined in gstwasapi.c.obj
Creating library subprojects\gst-plugins-bad\sys\wasapi\gstwasapi.lib and object subprojects\gst-plugins-bad\sys\wasapi\gstwasapi.exp
subprojects/gst-plugins-bad/sys/wasapi/gstwasapi.dll : fatal error LNK1169: one or more multiply defined symbols found
[8/130] Linking target subprojects/gst-plugins-bad/sys/winks/gstwinks.dll.
Creating library subprojects\gst-plugins-bad\sys\winks\gstwinks.lib and object subprojects\gst-plugins-bad\sys\winks\gstwinks.exp
[10/130] Compiling C object subprojects/gst-plugins-bad/ext/gl/subprojects@gst-plugins-bad@ext@gl@@gstopenglmixers@sha/gstglvideomixer.c.obj.
ninja: build stopped: subcommand failed.
This error is confusing to me because I have no idea where those symbols are coming from. Probably a header? But we guard all our header includes.