LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Sabayon
User Name
Password
Sabayon This forum is for the discussion of Sabayon Linux.

Notices


Reply
  Search this Thread
Old 06-16-2016, 07:57 AM   #1
lg240176
LQ Newbie
 
Registered: Jun 2016
Distribution: Sabayon
Posts: 10

Rep: Reputation: 0
Still Yet another Sokoban Make-problem


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 $
Please i need help!
Thanks
Lars
 
Old 06-16-2016, 01:56 PM   #2
smallpond
Senior Member
 
Registered: Feb 2011
Location: Massachusetts, USA
Distribution: CentOS 6 & 7
Posts: 3,015

Rep: Reputation: 802Reputation: 802Reputation: 802Reputation: 802Reputation: 802Reputation: 802Reputation: 802
Code:
Error: 'chdir' was not declared in this scope
Means you need to add a line in Main.cpp

Code:
#include <unistd.h>
 
Old 06-17-2016, 12:55 AM   #3
lg240176
LQ Newbie
 
Registered: Jun 2016
Distribution: Sabayon
Posts: 10

Original Poster
Rep: Reputation: 0
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 $
 
Old 06-17-2016, 02:18 AM   #4
pan64
LQ Guru
 
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 11,341

Rep: Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411
see man atoi, man strchr ... to find out which includes are required
 
Old 06-17-2016, 02:33 AM   #5
lg240176
LQ Newbie
 
Registered: Jun 2016
Distribution: Sabayon
Posts: 10

Original Poster
Rep: Reputation: 0
Quote:
Originally Posted by pan64 View Post
see man atoi, man strchr ... to find out which includes are required
How do you do that?
Please make it slow, I'm beginner in matters of linux sabayon.
 
Old 06-17-2016, 03:02 AM   #6
pan64
LQ Guru
 
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 11,341

Rep: Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411
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);
and you will find the include you need
 
Old 06-17-2016, 03:29 AM   #7
lg240176
LQ Newbie
 
Registered: Jun 2016
Distribution: Sabayon
Posts: 10

Original Poster
Rep: Reputation: 0
I added the line
Code:
#include <stdlib.h>
in the file djSettings.cpp.

The Output:

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/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 $
 
Old 06-17-2016, 03:48 AM   #8
pan64
LQ Guru
 
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 11,341

Rep: Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411
see post #4
 
Old 06-17-2016, 04:29 AM   #9
lg240176
LQ Newbie
 
Registered: Jun 2016
Distribution: Sabayon
Posts: 10

Original Poster
Rep: Reputation: 0
I haven't got the "man atoi"-command .
Code:
lars@lars-lenovo-b50-30 ~ $ man atoi
Kein Handbucheintrag für atoi vorhanden
lars@lars-lenovo-b50-30 ~ $

Last edited by lg240176; 06-17-2016 at 04:34 AM.
 
Old 06-17-2016, 04:38 AM   #10
pan64
LQ Guru
 
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 11,341

Rep: Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411
but you can check my post and also you can look for that man page on the net.
 
Old 06-17-2016, 04:52 AM   #11
lg240176
LQ Newbie
 
Registered: Jun 2016
Distribution: Sabayon
Posts: 10

Original Poster
Rep: Reputation: 0
I have the libs in djsettings.cpp.

The Output:
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/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 $
 
Old 06-17-2016, 05:36 AM   #12
pan64
LQ Guru
 
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 11,341

Rep: Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411Reputation: 3411
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.
 
Old 06-17-2016, 07:17 AM   #13
knudfl
LQ 5k Club
 
Registered: Jan 2008
Location: Copenhagen DK
Distribution: PCLinuxOS2018 CentOS6.10 CentOS7.5 + 50+ other Linux OS, for test only.
Posts: 17,079

Rep: Reputation: 3475Reputation: 3475Reputation: 3475Reputation: 3475Reputation: 3475Reputation: 3475Reputation: 3475Reputation: 3475Reputation: 3475Reputation: 3475Reputation: 3475
Syasokoban-2.0.1 builds OK with e.g. gcc-4.9.2 :
syasokoban-gcc43.patch
sed -i '13i #include <unistd.h>' src/Main.cpp

From http://download.opensuse.org/reposit....1-9.1.src.rpm
>>> The file syasokoban.spec

-
 
Old 06-17-2016, 09:43 AM   #14
lg240176
LQ Newbie
 
Registered: Jun 2016
Distribution: Sabayon
Posts: 10

Original Poster
Rep: Reputation: 0
That doesn't work.
The Windowsversion from SYAsokoban works.
 
Old 10-08-2016, 12:01 PM   #15
david_joffe
LQ Newbie
 
Registered: Oct 2016
Posts: 1

Rep: Reputation: Disabled
Quote:
Originally Posted by lg240176 View Post
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 View Post
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.
 
  


Reply

Tags
syasokoban


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Help needed for make file problem : make: *** No rule to make target `flash', needed rameshsatyavaram Linux - Newbie 3 09-11-2008 02:13 AM
Make Trouble linking some fortran code Make file problem? any ideas? TheBrick Linux - General 0 05-17-2006 11:21 AM
Sokoban on Mandriva 2006 Jerrodg Mandriva 2 11-15-2005 03:55 PM
solution for sokoban?? guerilla fighta Linux - Games 9 09-21-2005 11:55 AM
make dep,make clean,make bzImage problem Babba Linux - Newbie 2 01-08-2003 03:49 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Sabayon

All times are GMT -5. The time now is 10:59 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration