Commit 64180d226146013845f9280dd054ff82dfd68ed4

Sam Lantinga 2016-10-01T14:05:35

Fixed bug 3138 - c_dfDIJoystick2 already defined in dinput8.lib Machiel van Hooren In SDL_dxjoystick.c line 349 there is a constant c_dfDIJoystick2. However, this constant is aparently also defined in dinput8.lib. I encountered a linking error when statically linking to SDL: SDL2_static.lib(SDL_dxjoystick.obj) : error LNK2005: _c_dfDIJoystick2 already defined in dinput8.lib My application is also linking to dinput8.lib because we rolled our own joystick input and are not using the joystick functionality from SDL.

1
2
3
4
5
6
7
8
9
10
11
12
13
diff --git a/src/joystick/windows/SDL_dinputjoystick.c b/src/joystick/windows/SDL_dinputjoystick.c
index 47e0861..14df652 100644
--- a/src/joystick/windows/SDL_dinputjoystick.c
+++ b/src/joystick/windows/SDL_dinputjoystick.c
@@ -214,7 +214,7 @@ static DIOBJECTDATAFORMAT dfDIJoystick2[] = {
         { &GUID_Slider, FIELD_OFFSET(DIJOYSTATE2, rglFSlider[1]), DIDFT_OPTIONAL | DIDFT_AXIS | DIDFT_ANYINSTANCE, 0 },
 };
 
-const DIDATAFORMAT c_dfDIJoystick2 = {
+static const DIDATAFORMAT c_dfDIJoystick2 = {
     sizeof(DIDATAFORMAT),
     sizeof(DIOBJECTDATAFORMAT),
     DIDF_ABSAXIS,