KrossX / Pokopom

Input Plugin for Emulators
MIT License
42 stars 7 forks source link

How compile Pokopom under GNU/Linux ? #17

Closed inukaze closed 7 years ago

inukaze commented 7 years ago

Hi there i am trying to compile this PAD Plugin under GNU/Linux

git clone https://github.com/KrossX/Pokopom.git
cd Pokopom/
make
make: *** No hay ninguna regla para construir el objetivo 'ConfigDialog.o', necesario para 'default'.  Alto.
KrossX commented 7 years ago

I used this for making the linux builds long ago, but I have no idea if there are build issues.

#!/bin/bash
clear
g++ -Ofast -march=native -Wall -fPIC -DUNICODE -D_UNICODE -c magical-tools/Pokopom/Pokopom/*.cpp 
g++ -Ofast -march=native -shared -DUNICODE -D_UNICODE -Wl,-soname,libPokopom.so -o libPokopom.so *.o
rm *.o
inukaze commented 7 years ago

Ok i try the follow method , based on your information :

cd /tmp
rm -rf Pokopom/
git clone https://github.com/KrossX/Pokopom.git
cd Pokopom/
g++ -Ofast -march=native -Wall -fPIC -DUNICODE -D_UNICODE -c ./Pokopom/*.cpp
g++ -Ofast -march=native -shared -DUNICODE -D_UNICODE -Wl,-soname,libPokopom.so -o libPokopom.so *.o
cp "libPokopom.so" "$HOME/.pcsxr/plugins/"

Thanks now its compiled :D , right now i go to testing on PCSXR :D

$ pcsxr
/home/inukaze/.pcsxr/plugins/libPokopom.so: undefined symbol: multitap

and its not working :'( . i have a dunno i see the pcsxr default use a "shared library" and "cfgPlugin" (Binary Executable) this can be configured without the "cfgPokopom" binary file ???

My OS is 64 Bits

if you need all information :

$ cd /tmp
$ rm -rf Pokopom/
$ git clone https://github.com/KrossX/Pokopom.git
$ cd Pokopom/

$ g++ -Ofast -march=native -Wall -fPIC -DUNICODE -D_UNICODE -c ./Pokopom/*.cpp

./Pokopom/DebugStuff.cpp: En la función ‘void _DebugPrint(const char*, const char*, ...)’:
./Pokopom/DebugStuff.cpp:39:19: error: ‘va_start’ no se declaró en este ámbito
  va_start(args,fmt);
                   ^
./Pokopom/DebugStuff.cpp:41:13: error: ‘va_end’ no se declaró en este ámbito
  va_end(args);
             ^
./Pokopom/demul.cpp:6:19: error fatal: input.h: No existe el fichero o el directorio
compilación terminada.
In file included from ./Pokopom/FileIO.cpp:10:0:
./Pokopom/regini.h: En la función miembro ‘int regini::regini_file::readi(std::string, std::string, int)’:
./Pokopom/regini.h:53:58: error: ‘stoi’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stoi(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘long int regini::regini_file::readl(std::string, std::string, long int)’:
./Pokopom/regini.h:60:58: error: ‘stol’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stol(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘long long int regini::regini_file::readll(std::string, std::string, long long int)’:
./Pokopom/regini.h:67:58: error: ‘stoll’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stoll(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘long unsigned int regini::regini_file::readul(std::string, std::string, long unsigned int)’:
./Pokopom/regini.h:74:58: error: ‘stoul’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stoul(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘long long unsigned int regini::regini_file::readull(std::string, std::string, long long unsigned int)’:
./Pokopom/regini.h:81:58: error: ‘stoull’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stoull(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘float regini::regini_file::readf(std::string, std::string, float)’:
./Pokopom/regini.h:88:58: error: ‘stof’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stof(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘double regini::regini_file::readd(std::string, std::string, double)’:
./Pokopom/regini.h:95:58: error: ‘stod’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stod(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘long double regini::regini_file::readld(std::string, std::string, long double)’:
./Pokopom/regini.h:102:58: error: ‘stold’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stold(value);
                                                          ^
./Pokopom/FileIO.cpp: En la función ‘void FileIO::INI_SaveSettings()’:
./Pokopom/FileIO.cpp:49:42: error: ‘to_string’ no es un miembro de ‘std’
   inifile.write("General", "INIversion", std::to_string(INIversion));
                                          ^
./Pokopom/FileIO.cpp:50:44: error: ‘to_string’ no es un miembro de ‘std’
   inifile.write("General", "ProcPriority", std::to_string(bPriority ? 1 : 0));
                                            ^
./Pokopom/FileIO.cpp:51:41: error: ‘to_string’ no es un miembro de ‘std’
   inifile.write("General", "KeepAwake", std::to_string(bKeepAwake ? 1 : 0));
                                         ^
./Pokopom/FileIO.cpp:52:41: error: ‘to_string’ no es un miembro de ‘std’
   inifile.write("General", "SwapPorts", std::to_string(SwapPortsEnabled ? 1 : 0));
                                         ^
./Pokopom/FileIO.cpp:53:40: error: ‘to_string’ no es un miembro de ‘std’
   inifile.write("General", "Multitap", std::to_string(multitap));
                                        ^
./Pokopom/FileIO.cpp:54:42: error: ‘to_string’ no es un miembro de ‘std’
   inifile.write("General", "DisableLED", std::to_string(disableLED ? 1 : 0));
                                          ^
./Pokopom/FileIO.cpp:58:41: error: ‘to_string’ no es un miembro de ‘std’
    std::string section = "Controller" + std::to_string(port);
                                         ^
./Pokopom/FileIO.cpp:71:43: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "AxisInverted", std::to_string(AxisInverted));
                                           ^
./Pokopom/FileIO.cpp:72:40: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "AxisRemap", std::to_string(AxisRemap));
                                        ^
./Pokopom/FileIO.cpp:74:46: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "TriggerDeadzone", std::to_string(set.triggerDeadzone));
                                              ^
./Pokopom/FileIO.cpp:75:39: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "Pressure", std::to_string(set.pressureRate));
                                       ^
./Pokopom/FileIO.cpp:76:37: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "Rumble", std::to_string(set.rumble));
                                     ^
./Pokopom/FileIO.cpp:77:43: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "SticksLocked", std::to_string(set.sticksLocked ? 1 : 0));
                                           ^
./Pokopom/FileIO.cpp:79:41: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "XInputPort", std::to_string(set.xinputPort));
                                         ^
./Pokopom/FileIO.cpp:80:39: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "Disabled", std::to_string(set.disabled ? 1 : 0));
                                       ^
./Pokopom/FileIO.cpp:81:41: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "DefautMode", std::to_string(set.defaultAnalog ? 1 : 0));
                                         ^
./Pokopom/FileIO.cpp:82:42: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "GreenAnalog", std::to_string(set.greenAnalog ? 1 : 0));
                                          ^
./Pokopom/FileIO.cpp:83:47: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "GuitarController", std::to_string(set.isGuitar ? 1 : 0));
                                               ^
./Pokopom/FileIO.cpp:85:44: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "SwapDCBumpers", std::to_string(set.SwapDCBumpers ? 1 : 0));
                                            ^
./Pokopom/FileIO.cpp:86:41: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "SwapSticks", std::to_string(set.SwapSticksEnabled ? 1 : 0));
                                         ^
./Pokopom/FileIO.cpp:87:37: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "SwapXO", std::to_string(set.SwapXO ? 1 : 0));
                                     ^
./Pokopom/FileIO.cpp:91:41: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "LS_4wayDAC", std::to_string(set.stickL.b4wayDAC ? 1 : 0));
                                         ^
./Pokopom/FileIO.cpp:92:43: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "LS_EnableDAC", std::to_string(set.stickL.DACenabled ? 1 : 0));
                                           ^
./Pokopom/FileIO.cpp:93:46: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "LS_DACthreshold", std::to_string(set.stickL.DACthreshold));
                                              ^
./Pokopom/FileIO.cpp:95:52: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "LS_ExtentionThreshold", std::to_string(set.stickL.extThreshold));
                                                    ^
./Pokopom/FileIO.cpp:97:43: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "LS_Linearity", std::to_string(set.stickL.linearity));
                                           ^
./Pokopom/FileIO.cpp:98:46: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "LS_AntiDeadzone", std::to_string(set.stickL.antiDeadzone));
                                              ^
./Pokopom/FileIO.cpp:99:42: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "LS_Deadzone", std::to_string(set.stickL.deadzone));
                                          ^
./Pokopom/FileIO.cpp:103:41: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "RS_4wayDAC", std::to_string(set.stickR.b4wayDAC ? 1 : 0));
                                         ^
./Pokopom/FileIO.cpp:104:43: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "RS_EnableDAC", std::to_string(set.stickR.DACenabled ? 1 : 0));
                                           ^
./Pokopom/FileIO.cpp:105:46: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "RS_DACthreshold", std::to_string(set.stickR.DACthreshold));
                                              ^
./Pokopom/FileIO.cpp:107:52: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "RS_ExtentionThreshold", std::to_string(set.stickR.extThreshold));
                                                    ^
./Pokopom/FileIO.cpp:109:43: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "RS_Linearity", std::to_string(set.stickR.linearity));
                                           ^
./Pokopom/FileIO.cpp:110:46: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "RS_AntiDeadzone", std::to_string(set.stickR.antiDeadzone));
                                              ^
./Pokopom/FileIO.cpp:111:42: error: ‘to_string’ no es un miembro de ‘std’
    inifile.write(section, "RS_Deadzone", std::to_string(set.stickR.deadzone));
                                          ^
./Pokopom/FileIO.cpp: En la función ‘void FileIO::INI_LoadSettings()’:
./Pokopom/FileIO.cpp:143:41: error: ‘to_string’ no es un miembro de ‘std’
    std::string section = "Controller" + std::to_string(port);
                                         ^
./Pokopom/Input_Linux.cpp: En la función ‘bool Input::JoyPoll(u8)’:
./Pokopom/Input_Linux.cpp:112:56: error: ‘read’ no se declaró en este ámbito
    while(read(joy_info[port].fd, &joy, sizeof(js_event)) != -1)
                                                        ^
./Pokopom/Input_Linux.cpp: En la función ‘bool Input::Recheck(u8)’:
./Pokopom/Input_Linux.cpp:166:16: error: ‘close’ no se declaró en este ámbito
    close(joy_fd);
                ^
./Pokopom/Input_Linux.cpp:196:19: error: ‘close’ no se declaró en este ámbito
    close(rumble_fd);
                   ^
./Pokopom/Input_Linux.cpp: En la función ‘void Input::DualshockRumble(u8, u8, _Settings&, bool&)’:
./Pokopom/Input_Linux.cpp:351:71: error: ‘write’ no se declaró en este ámbito
   if (write(rumble.fd, (const void*) &rumble.play, sizeof(rumble.play)) == -1)
                                                                       ^
In file included from ./Pokopom/playstation_dualshock2.cpp:6:0:
./Pokopom/playstation_codes.h:42:11: aviso: los enums con ámbito sólo están disponibles con -std=c++11 o -std=gnu++11
 enum ID : u8
           ^
In file included from ./Pokopom/playstation_dualshock.cpp:6:0:
./Pokopom/playstation_codes.h:42:11: aviso: los enums con ámbito sólo están disponibles con -std=c++11 o -std=gnu++11
 enum ID : u8
           ^
In file included from ./Pokopom/playstation_guitar.cpp:7:0:
./Pokopom/playstation_codes.h:42:11: aviso: los enums con ámbito sólo están disponibles con -std=c++11 o -std=gnu++11
 enum ID : u8
           ^
In file included from ./Pokopom/playstation_mtap.cpp:7:0:
./Pokopom/playstation_codes.h:42:11: aviso: los enums con ámbito sólo están disponibles con -std=c++11 o -std=gnu++11
 enum ID : u8
           ^
./Pokopom/playstation_mtap.cpp: En el destructor ‘MultiTap::~MultiTap()’:
./Pokopom/playstation_mtap.cpp:27:44: aviso: si borra un objeto de tipo de clase polimórfica ‘PlayStationDevice’ que tiene un destructor que no es virtual, puede causar conducta indefinida [-Wdelete-non-virtual-dtor]
  for(int i = 0; i < 4; i++) delete Device[i];
                                            ^
./Pokopom/regini.cpp:84:5: aviso: el identificador ‘nullptr’ es una palabra clave en C++11 [-Wc++0x-compat]
     current_section = nullptr;
     ^
In file included from ./Pokopom/regini.cpp:10:0:
./Pokopom/regini.h: En la función miembro ‘int regini::regini_file::readi(std::string, std::string, int)’:
./Pokopom/regini.h:53:58: error: ‘stoi’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stoi(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘long int regini::regini_file::readl(std::string, std::string, long int)’:
./Pokopom/regini.h:60:58: error: ‘stol’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stol(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘long long int regini::regini_file::readll(std::string, std::string, long long int)’:
./Pokopom/regini.h:67:58: error: ‘stoll’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stoll(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘long unsigned int regini::regini_file::readul(std::string, std::string, long unsigned int)’:
./Pokopom/regini.h:74:58: error: ‘stoul’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stoul(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘long long unsigned int regini::regini_file::readull(std::string, std::string, long long unsigned int)’:
./Pokopom/regini.h:81:58: error: ‘stoull’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stoull(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘float regini::regini_file::readf(std::string, std::string, float)’:
./Pokopom/regini.h:88:58: error: ‘stof’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stof(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘double regini::regini_file::readd(std::string, std::string, double)’:
./Pokopom/regini.h:95:58: error: ‘stod’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stod(value);
                                                          ^
./Pokopom/regini.h: En la función miembro ‘long double regini::regini_file::readld(std::string, std::string, long double)’:
./Pokopom/regini.h:102:58: error: ‘stold’ no es un miembro de ‘std’
    if (read_string(section, key, value)) default_value = std::stold(value);
                                                          ^
./Pokopom/regini.cpp: En la función miembro ‘void regini::regini_file::add_entry(std::string)’:
./Pokopom/regini.cpp:49:24: aviso: range-based ‘for’ loops only available with -std=c++11 or -std=gnu++11
   for (entry_type et : current_section->entry)
                        ^
./Pokopom/regini.cpp: En la función miembro ‘bool regini::regini_file::open(std::string)’:
./Pokopom/regini.cpp:66:27: error: no se encontró una función coincidente para la llamada a ‘std::basic_ifstream<char>::basic_ifstream(std::string&)’
   std::ifstream file(fname);
                           ^
In file included from ./Pokopom/regini.cpp:5:0:
/usr/include/c++/5.3.0/fstream:495:7: nota: candidate: std::basic_ifstream<_CharT, _Traits>::basic_ifstream(const char*, std::ios_base::openmode) [con _CharT = char; _Traits = std::char_traits<char>; std::ios_base::openmode = std::_Ios_Openmode]
       basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in)
       ^
/usr/include/c++/5.3.0/fstream:495:7: nota:   no hay una conversión conocida para el argumento 1 de ‘std::string {aka std::basic_string<char>}’ a ‘const char*’
/usr/include/c++/5.3.0/fstream:481:7: nota: candidate: std::basic_ifstream<_CharT, _Traits>::basic_ifstream() [con _CharT = char; _Traits = std::char_traits<char>]
       basic_ifstream() : __istream_type(), _M_filebuf()
       ^
/usr/include/c++/5.3.0/fstream:481:7: nota:   el candidato espera 0 argumentos, se proporcionaron 1
/usr/include/c++/5.3.0/fstream:455:11: nota: candidate: std::basic_ifstream<char>::basic_ifstream(const std::basic_ifstream<char>&)
     class basic_ifstream : public basic_istream<_CharT, _Traits>
           ^
/usr/include/c++/5.3.0/fstream:455:11: nota:   no hay una conversión conocida para el argumento 1 de ‘std::string {aka std::basic_string<char>}’ a ‘const std::basic_ifstream<char>&’
./Pokopom/regini.cpp:84:23: error: ‘nullptr’ no se declaró en este ámbito
     current_section = nullptr;
                       ^
./Pokopom/regini.cpp:86:23: aviso: range-based ‘for’ loops only available with -std=c++11 or -std=gnu++11
     for (string str : line)
                       ^
./Pokopom/regini.cpp: En la función miembro ‘void regini::regini_file::save()’:
./Pokopom/regini.cpp:111:63: error: no se encontró una función coincidente para la llamada a ‘std::basic_ofstream<char>::basic_ofstream(std::string&, std::_Ios_Openmode)’
   std::ofstream file(filename, std::ios::out | std::ios::trunc);
                                                               ^
In file included from ./Pokopom/regini.cpp:5:0:
/usr/include/c++/5.3.0/fstream:697:7: nota: candidate: std::basic_ofstream<_CharT, _Traits>::basic_ofstream(const char*, std::ios_base::openmode) [con _CharT = char; _Traits = std::char_traits<char>; std::ios_base::openmode = std::_Ios_Openmode]
       basic_ofstream(const char* __s,
       ^
/usr/include/c++/5.3.0/fstream:697:7: nota:   no hay una conversión conocida para el argumento 1 de ‘std::string {aka std::basic_string<char>}’ a ‘const char*’
/usr/include/c++/5.3.0/fstream:682:7: nota: candidate: std::basic_ofstream<_CharT, _Traits>::basic_ofstream() [con _CharT = char; _Traits = std::char_traits<char>]
       basic_ofstream(): __ostream_type(), _M_filebuf()
       ^
/usr/include/c++/5.3.0/fstream:682:7: nota:   el candidato espera 0 argumentos, se proporcionaron 2
/usr/include/c++/5.3.0/fstream:656:11: nota: candidate: std::basic_ofstream<char>::basic_ofstream(const std::basic_ofstream<char>&)
     class basic_ofstream : public basic_ostream<_CharT,_Traits>
           ^
/usr/include/c++/5.3.0/fstream:656:11: nota:   el candidato espera 1 argumento, se proporcionaron 2
./Pokopom/regini.cpp:117:28: aviso: range-based ‘for’ loops only available with -std=c++11 or -std=gnu++11
    for (section_type sec : vsection)
                            ^
./Pokopom/regini.cpp:121:29: aviso: range-based ‘for’ loops only available with -std=c++11 or -std=gnu++11
     for (entry_type entry : sec.entry)
                             ^
./Pokopom/regini.cpp: En la función miembro ‘regini::section_type* regini::regini_file::get_section(std::string)’:
./Pokopom/regini.cpp:145:10: error: ‘nullptr’ no se declaró en este ámbito
   return nullptr;
          ^
./Pokopom/regini.cpp: En la función miembro ‘regini::entry_type* regini::regini_file::get_entry(std::string, std::string)’:
./Pokopom/regini.cpp:152:14: error: ‘nullptr’ no se declaró en este ámbito
   if (sec != nullptr)
              ^
./Pokopom/regini.cpp:165:10: error: ‘nullptr’ no se declaró en este ámbito
   return nullptr;
          ^
./Pokopom/regini.cpp: En la función miembro ‘bool regini::regini_file::read_string(std::string, std::string, std::string&)’:
./Pokopom/regini.cpp:172:16: error: ‘nullptr’ no se declaró en este ámbito
   if (entry != nullptr)
                ^
./Pokopom/regini.cpp: En la función miembro ‘void regini::regini_file::write_string(std::string, std::string, std::string)’:
./Pokopom/regini.cpp:191:14: error: ‘nullptr’ no se declaró en este ámbito
   if (sec == nullptr)
              ^
./Pokopom/regini.cpp: En la función miembro ‘bool regini::regini_file::read_string(std::string, std::string, std::string&)’:
./Pokopom/regini.cpp:181:2: aviso: el control alcanza el final de una función que no es void [-Wreturn-type]
  }
  ^
./Pokopom/Stuff_Windows.cpp:7:19: error fatal: input.h: No existe el fichero o el directorio
compilación terminada.
KrossX commented 7 years ago

That just means Pokopom linux is currently broken. It was never a good option anyway, but it did work at some point.

Also, it doesn't have any configuration thingy on linux so you had to edit the config file manually if you wanted to alter something.

inukaze commented 7 years ago

I am not developer, i dont know how adapt the source code. well i will write to the GitHub of Pcsxr , to comment various issues and to tell they to port your project for pcsxr .

Because i had some troubles with the default pcsxr input plugin, thank you anyway :)