SabayonThis forum is for the discussion of Sabayon Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I hav got a problem with the game "Still Yet another Sokoban"
Code:
lars@lars-lenovo-b50-30 ~/Downloads/Programme/Linux/Spiele/syasokoban-2.0.1 $ make
gcc -ansi -Wall -I/usr/local/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -c src/Main.cpp -o src/Main.o
src/Main.cpp: In Funktion »int main(int, char**)«:
src/Main.cpp:25:24: Fehler: »chdir« wurde in diesem Gültigkeitsbereich nicht definiert
chdir("SYASokoban.app");
^
Makefile:28: die Regel für Ziel „src/Main.o“ scheiterte
make: *** [src/Main.o] Fehler 1
lars@lars-lenovo-b50-30 ~/Downloads/Programme/Linux/Spiele/syasokoban-2.0.1 $
I added the line in Main.cpp.
Here the Screeenoutput:
Code:
lars@lars-lenovo-b50-30 ~/Downloads/Programme/Linux/Spiele/syasokoban-2.0.1 $ make
gcc -ansi -Wall -I/usr/local/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -c src/Main.cpp -o src/Main.o
gcc -ansi -Wall -I/usr/local/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -c src/djControls.cpp -o src/djControls.o
src/djControls.cpp: In Elementfunktion »virtual bool djTextEdit::OnEvent(SDL_Event&, SDLMod)«:
src/djControls.cpp:62:14: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
if (m_nPos<m_sText.length()) m_nPos++;
^
src/djControls.cpp: In Elementfunktion »virtual bool djList::OnEvent(SDL_Event&, SDLMod)«:
src/djControls.cpp:364:19: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
if (m_nSelected<m_aItems.size()-1) m_nSelected++;
^
In file included from src/djGraph.h:16:0,
from src/djItem.h:11,
from src/djControls.h:10,
from src/djControls.cpp:8:
src/djUtils.h:23:24: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
#define djMIN(a,b) ((a)<(b)?(a):(b))
^
src/djControls.cpp:381:19: Anmerkung: bei Substitution des Makros »djMIN«
int nNewSel = djMIN(m_aItems.size()-1, m_nSelected + m_nMax);
^
src/djControls.cpp:398:40: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
if (m_aItems.size()>0 && m_nSelected!=m_aItems.size()-1)
^
src/djControls.cpp: In Elementfunktion »virtual bool djList::OnMouseButtonDown(int)«:
src/djControls.cpp:443:18: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
if (m_nSelected<m_aItems.size()-1) m_nSelected++;
^
src/djControls.cpp:450:11: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
if (nSel<m_aItems.size()-1)
^
src/djControls.cpp: In Elementfunktion »virtual void djList::Draw(SDL_Surface*, int, int)«:
src/djControls.cpp:491:12: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
if (nSel<m_aItems.size()-1)
^
src/djControls.cpp:500:13: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
if (nItem<m_aItems.size())
^
src/djControls.cpp: In Elementfunktion »void djList::SetItem(int, int, const char*)«:
src/djControls.cpp:566:26: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
while (m_aItems.size()-1<nRow)
^
src/djControls.cpp:569:39: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
while (m_aItems[nRow].asText.size()-1<nColumn)
^
gcc -ansi -Wall -I/usr/local/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -c src/djItem.cpp -o src/djItem.o
gcc -ansi -Wall -I/usr/local/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -c src/djDesktop.cpp -o src/djDesktop.o
src/djDesktop.cpp: In Elementfunktion »bool CdjDesktop::LoadMouseCursorA(const char*, const char*)«:
src/djDesktop.cpp:103:64: Warnung: Operation auf »*(pRow + ((sizetype)(((long unsigned int)j) * 4ul)))« könnte undefiniert sein [-Wsequence-point]
*(pRow + j) = (*(pRow+j) &= (0x00FFFFFF | (ucAlpha << 24)));
^
gcc -ansi -Wall -I/usr/local/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -c src/djGraph.cpp -o src/djGraph.o
gcc -ansi -Wall -I/usr/local/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -c src/djSettings.cpp -o src/djSettings.o
src/djSettings.cpp: In Elementfunktion »bool CdjSettings::LoadSettings(const char*)«:
src/djSettings.cpp:45:29: Fehler: »strchr« wurde in diesem Gültigkeitsbereich nicht definiert
char *sz = strchr(buf, '=');
^
src/djSettings.cpp:51:41: Fehler: »strlen« wurde in diesem Gültigkeitsbereich nicht definiert
Setting.szKey = new char[strlen(buf)+1];
^
src/djSettings.cpp:53:31: Fehler: »strcpy« wurde in diesem Gültigkeitsbereich nicht definiert
strcpy(Setting.szKey, buf);
^
src/djSettings.cpp: In Elementfunktion »void CdjSettings::SetSetting(const char*, const char*)«:
src/djSettings.cpp:82:42: Fehler: »strcmp« wurde in diesem Gültigkeitsbereich nicht definiert
if (!strcmp(szKey, m_aSettings[i].szKey))
^
src/djSettings.cpp:85:52: Fehler: »strlen« wurde in diesem Gültigkeitsbereich nicht definiert
m_aSettings[i].szValue = new char[strlen(szValue)+1];
^
src/djSettings.cpp:86:42: Fehler: »strcpy« wurde in diesem Gültigkeitsbereich nicht definiert
strcpy(m_aSettings[i].szValue, szValue);
^
src/djSettings.cpp:92:41: Fehler: »strlen« wurde in diesem Gültigkeitsbereich nicht definiert
Setting.szKey = new char[strlen(szKey)+1];
^
src/djSettings.cpp:94:29: Fehler: »strcpy« wurde in diesem Gültigkeitsbereich nicht definiert
strcpy(Setting.szKey, szKey);
^
src/djSettings.cpp: In Elementfunktion »char* CdjSettings::FindSetting(const char*)«:
src/djSettings.cpp:131:42: Fehler: »strcmp« wurde in diesem Gültigkeitsbereich nicht definiert
if (!strcmp(szKey, m_aSettings[i].szKey))
^
src/djSettings.cpp: In Elementfunktion »int CdjSettings::GetSettingInt(const char*, int)«:
src/djSettings.cpp:162:16: Fehler: »atoi« wurde in diesem Gültigkeitsbereich nicht definiert
return atoi(sz);
^
src/djSettings.cpp: In Elementfunktion »float CdjSettings::GetSettingFloat(const char*, float)«:
src/djSettings.cpp:170:16: Fehler: »atof« wurde in diesem Gültigkeitsbereich nicht definiert
return atof(sz);
^
src/djSettings.cpp: In Elementfunktion »int CdjSettings::GetSettingInt(const char*, int)«:
src/djSettings.cpp:163:1: Warnung: Kontrollfluss erreicht Ende von Nicht-void-Funktion [-Wreturn-type]
}
^
src/djSettings.cpp: In Elementfunktion »float CdjSettings::GetSettingFloat(const char*, float)«:
src/djSettings.cpp:171:1: Warnung: Kontrollfluss erreicht Ende von Nicht-void-Funktion [-Wreturn-type]
}
^
Makefile:28: die Regel für Ziel „src/djSettings.o“ scheiterte
make: *** [src/djSettings.o] Fehler 1
lars@lars-lenovo-b50-30 ~/Downloads/Programme/Linux/Spiele/syasokoban-2.0.1 $
type: man atoi (or man 3 atoi) and you will see at the beginning:
Code:
ATOI(3) Linux Programmer's Manual ATOI(3)
NAME
atoi, atol, atoll, atoq - convert a string to an integer
SYNOPSIS
#include <stdlib.h>
int atoi(const char *nptr);
long atol(const char *nptr);
long long atoll(const char *nptr);
long long atoq(const char *nptr);
lars@lars-lenovo-b50-30 ~/Downloads/Programme/Linux/Spiele/syasokoban-2.0.1 $ make
gcc -ansi -Wall -I/usr/local/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -c src/djSettings.cpp -o src/djSettings.o
src/djSettings.cpp: In Elementfunktion »bool CdjSettings::LoadSettings(const char*)«:
src/djSettings.cpp:46:29: Fehler: »strchr« wurde in diesem Gültigkeitsbereich nicht definiert
char *sz = strchr(buf, '=');
^
src/djSettings.cpp:52:41: Fehler: »strlen« wurde in diesem Gültigkeitsbereich nicht definiert
Setting.szKey = new char[strlen(buf)+1];
^
src/djSettings.cpp:54:31: Fehler: »strcpy« wurde in diesem Gültigkeitsbereich nicht definiert
strcpy(Setting.szKey, buf);
^
src/djSettings.cpp: In Elementfunktion »void CdjSettings::SetSetting(const char*, const char*)«:
src/djSettings.cpp:83:42: Fehler: »strcmp« wurde in diesem Gültigkeitsbereich nicht definiert
if (!strcmp(szKey, m_aSettings[i].szKey))
^
src/djSettings.cpp:86:52: Fehler: »strlen« wurde in diesem Gültigkeitsbereich nicht definiert
m_aSettings[i].szValue = new char[strlen(szValue)+1];
^
src/djSettings.cpp:87:42: Fehler: »strcpy« wurde in diesem Gültigkeitsbereich nicht definiert
strcpy(m_aSettings[i].szValue, szValue);
^
src/djSettings.cpp:93:41: Fehler: »strlen« wurde in diesem Gültigkeitsbereich nicht definiert
Setting.szKey = new char[strlen(szKey)+1];
^
src/djSettings.cpp:95:29: Fehler: »strcpy« wurde in diesem Gültigkeitsbereich nicht definiert
strcpy(Setting.szKey, szKey);
^
src/djSettings.cpp: In Elementfunktion »char* CdjSettings::FindSetting(const char*)«:
src/djSettings.cpp:132:42: Fehler: »strcmp« wurde in diesem Gültigkeitsbereich nicht definiert
if (!strcmp(szKey, m_aSettings[i].szKey))
^
Makefile:28: die Regel für Ziel „src/djSettings.o“ scheiterte
make: *** [src/djSettings.o] Fehler 1
lars@lars-lenovo-b50-30 ~/Downloads/Programme/Linux/Spiele/syasokoban-2.0.1 $
lars@lars-lenovo-b50-30 ~/Downloads/Programme/Linux/Spiele/syasokoban-2.0.1 $ make
gcc -ansi -Wall -I/usr/local/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -c src/djSettings.cpp -o src/djSettings.o
gcc -o syasokoban src/djFont.o src/Games.o src/GameRegistry.o src/djUtils.o src/Sokoban.o src/Game.o src/djMenu.o src/Main.o src/djControls.o src/djItem.o src/djDesktop.o src/djGraph.o src/djSettings.o -lstdc++ -lSDL -lpthread -lm
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../../../x86_64-pc-linux-gnu/bin/ld: src/djFont.o: relocation R_X86_64_32 against `_ZTV7CdjFont' can not be used when making a shared object; recompile with -fPIC
src/djFont.o: error adding symbols: Bad value
collect2: Fehler: ld gab 1 als Ende-Status zurück
Makefile:19: die Regel für Ziel „syasokoban“ scheiterte
make: *** [syasokoban] Fehler 1
lars@lars-lenovo-b50-30 ~/Downloads/Programme/Linux/Spiele/syasokoban-2.0.1 $
there are still several errors:
put -fPIC -pthread into CFLAGS (or similar probably) I do not really know because I did not see that makefile
do not use -lpthread.
I hav got a problem with the game "Still Yet another Sokoban"
Hi, I'm the author of Still Yet Another Sokoban and I've incorporated fixes for the compile issues you encountered into the latest source release on grayskygames.com - thanks! Let me know if you still have problems, or if any additional fixes are required, please let me know so I can update the Makefile.
Quote:
Originally Posted by pan64
there are still several errors:
put -fPIC -pthread into CFLAGS (or similar probably) I do not really know because I did not see that makefile
do not use -lpthread.
Could you let me know if this is still an issue with the latest source? For me it compiles fine without making any pthread-related changes, at least on my dev system.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.