Emulator Issues #4356
closedCompiling fails on Linux with SDL 1.3
0%
Description
What's the problem?
Since revision 7339 I can no longer compile Dolphin with SDL 1.3.
Operating system and version:
32-bit and 64-bit Linux
Build command-line (not on Windows):
For building I'm using the standard method (cmake) as described in Wiki.
Please provide any additional information below.
These are the errors I'm getting at build time:
[ 35%] Building CXX object Source/Core/InputCommon/CMakeFiles/inputcommon.dir/Src/ControllerInterface/ControllerInterface.cpp.o
In file included from /root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp:16:
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h: In constructor ‘ciface::SDL::Joystick::ConstantEffect::ConstantEffect(size_t)’:
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:89: error: no matching function for call to ‘ControllerInterface::Device::Output::Output(const size_t&)’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h:97: note: candidates are: ControllerInterface::Device::Output::Output()
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h:97: note: ControllerInterface::Device::Output::Output(const ControllerInterface::Device::Output&)
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:89: error: uninitialized member ‘ciface::SDL::Joystick::ConstantEffect::m_js’ with ‘const’ type ‘SDL_Joystick* const’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h: In constructor ‘ciface::SDL::Joystick::RampEffect::RampEffect(size_t)’:
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:99: error: no matching function for call to ‘ControllerInterface::Device::Output::Output(const size_t&)’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h:97: note: candidates are: ControllerInterface::Device::Output::Output()
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h:97: note: ControllerInterface::Device::Output::Output(const ControllerInterface::Device::Output&)
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:99: error: uninitialized member ‘ciface::SDL::Joystick::RampEffect::m_js’ with ‘const’ type ‘SDL_Joystick* const’
make[2]: *** [Source/Core/InputCommon/CMakeFiles/inputcommon.dir/Src/ControllerInterface/ControllerInterface.cpp.o] Error 1
make[1]: *** [Source/Core/InputCommon/CMakeFiles/inputcommon.dir/all] Error 2
make: *** [all] Error 2
Updated by Billiard26 over 13 years ago
- Status changed from Accepted to Work started
Try this patch.
Updated by dubigrasu over 13 years ago
With the patch applied I'm getting another bunch of errors:
[ 35%] Building CXX object Source/Core/InputCommon/CMakeFiles/inputcommon.dir/Src/ControllerInterface/ControllerInterface.cpp.o
In file included from /root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp:16:
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:43: error: expected ‘;’ before ‘effect’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h: In constructor ‘ciface::SDL::Joystick::EffectIDState::EffectIDState()’:
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:41: error: class ‘ciface::SDL::Joystick::EffectIDState’ does not have any field named ‘id’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:41: error: class ‘ciface::SDL::Joystick::EffectIDState’ does not have any field named ‘changed’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:41: error: class ‘ciface::SDL::Joystick::EffectIDState’ does not have any field named ‘effect’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:41: error: expected %<{%> at end of input
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h: At global scope:
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:50: error: expected class-name before ‘{’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:61: error: expected class-name before ‘{’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:73: error: expected class-name before ‘{’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:86: error: expected class-name before ‘{’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:89: error: expected ‘)’ before ‘&’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:93: error: ISO C++ forbids declaration of ‘EffectIDState’ with no type
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:93: error: expected ‘;’ before ‘&’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:92: warning: non-static const member ‘SDL_Joystick* const ciface::SDL::ConstantEffect::m_js’ in class without a constructor
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:97: error: expected class-name before ‘{’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:100: error: expected ‘)’ before ‘&’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:104: error: ISO C++ forbids declaration of ‘EffectIDState’ with no type
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:104: error: expected ‘;’ before ‘&’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:103: warning: non-static const member ‘SDL_Joystick* const ciface::SDL::RampEffect::m_js’ in class without a constructor
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:108: error: expected unqualified-id before ‘public’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:112: error: expected ‘)’ before ‘*’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:113: error: expected constructor, destructor, or type conversion before ‘;’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:115: error: non-member function ‘std::string ciface::SDL::GetName()’ cannot have cv-qualifier
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:116: error: non-member function ‘int ciface::SDL::GetId()’ cannot have cv-qualifier
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:117: error: non-member function ‘std::string ciface::SDL::GetSource()’ cannot have cv-qualifier
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:119: error: expected unqualified-id before ‘private’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:121: error: uninitialized const ‘ciface::SDL::m_sdl_index’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:122: error: uninitialized const ‘ciface::SDL::m_index’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:125: error: expected constructor, destructor, or type conversion before ‘<’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:131: error: expected declaration before ‘}’ token
make[2]: *** [Source/Core/InputCommon/CMakeFiles/inputcommon.dir/Src/ControllerInterface/ControllerInterface.cpp.o] Error 1
make[1]: *** [Source/Core/InputCommon/CMakeFiles/inputcommon.dir/all] Error 2
make: *** [all] Error 2
Updated by Billiard26 over 13 years ago
I had some stupid syntax errors.
Try this one :p
Updated by dubigrasu over 13 years ago
Man you're fast! :)
OK, this is what I'm getting this time:
[ 35%] Building CXX object Source/Core/InputCommon/CMakeFiles/inputcommon.dir/Src/ControllerInterface/ControllerInterface.cpp.o
In file included from /root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp:16:
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:125: error: ISO C++ forbids declaration of ‘list’ with no type
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:125: error: invalid use of ‘::’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:125: error: expected ‘;’ before ‘<’ token
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h: In constructor ‘ciface::SDL::Joystick::EffectIDState::EffectIDState()’:
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:45: warning: ‘ciface::SDL::Joystick::EffectIDState::changed’ will be initialized after
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:43: warning: ‘SDL_HapticEffect ciface::SDL::Joystick::EffectIDState::effect’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:41: warning: when initialized here
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h: In constructor ‘ciface::SDL::Joystick::ConstantEffect::ConstantEffect(ciface::SDL::Joystick::EffectIDState&)’:
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:89: error: uninitialized member ‘ciface::SDL::Joystick::ConstantEffect::m_js’ with ‘const’ type ‘SDL_Joystick* const’
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h: In constructor ‘ciface::SDL::Joystick::RampEffect::RampEffect(ciface::SDL::Joystick::EffectIDState&)’:
/root/dolphin-emu-read-only/Source/Core/InputCommon/Src/ControllerInterface/SDL/SDL.h:100: error: uninitialized member ‘ciface::SDL::Joystick::RampEffect::m_js’ with ‘const’ type ‘SDL_Joystick* const’
make[2]: *** [Source/Core/InputCommon/CMakeFiles/inputcommon.dir/Src/ControllerInterface/ControllerInterface.cpp.o] Error 1
make[1]: *** [Source/Core/InputCommon/CMakeFiles/inputcommon.dir/all] Error 2
make: *** [all] Error 2
Updated by Billiard26 over 13 years ago
Ok, I really think this one will work. :p
(I'm too lazy to set up SDL 1.3 and test myself)
Updated by dubigrasu over 13 years ago
Bingo! You're the MAN :)
This time everything went well, I've also tested a bit my joysticks to see if everything is in order.
Thank you, I'll drink tomorrow a beer for you :)
Updated by Billiard26 over 13 years ago
- Status changed from Work started to Fixed
:p Thanks. I'll commit it.