Kompilierfehler bei dgtnix 1.9.1

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Benutzeravatar
Twilo
Beiträge: 255
Registriert: 21.04.2006 00:59:40
Wohnort: Berlin

Kompilierfehler bei dgtnix 1.9.1

Beitrag von Twilo » 18.08.2008 20:26:45

Hallo,

ich versuche dgtnix 1.9.1 zu kompilieren (für mein DGT Schachbrett), erhalte jedoch folgende Fehlermeldungen wenn ich make aufrufe.

Wo bzw. wie muss ich @RELEASE_INFO@ und @VERSION_INFO@ anlegen?

mfg
Twilo

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von gms » 18.08.2008 20:35:57

Twilo hat geschrieben: Wo bzw. wie muss ich @RELEASE_INFO@ und @VERSION_INFO@ anlegen?
das sollte eigentlich vom "./configure" Script erledigt werden

Gruß
gms

edit: bei mir wird es das auch

Benutzeravatar
Twilo
Beiträge: 255
Registriert: 21.04.2006 00:59:40
Wohnort: Berlin

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Twilo » 18.08.2008 21:47:37

Hallo,

ich verwende sid.

ich sehe gerade, dass bei configure folgende Fehlermeldung erscheint.

Code: Alles auswählen

./configure: line 2925: AX_SET_VERSION_INFO: command not found
mfg
Twilo

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von gms » 18.08.2008 21:53:08

Ist deine autoconf-Version aktuell ( "autoconf --version" ) ? Ich habe es mit der Version 2.61 probiert, allerdings nicht auf einem Debian

Falls diese Einträge nicht sehr oft vorkommen, könntest du sie auch manuell anpassen
"@RELEASE_INFO@" durch "-release 1" ersetzen und "@VERSION_INFO@" durch "-version-info 9:1" ersetzen

Gruß
gms

edit:
gms hat geschrieben: Ist deine autoconf-Version aktuell ( "autoconf --version" ) ? Ich habe es mit der Version 2.61 probiert, allerdings nicht auf einem Debian
das war natürlich ein Blödsinn, du verwendest ja das ausgelieferte configure-Script, autoconf bräuchtest du nur wenn du dieses Script neu erstellen möchtest.
Allerdings kommt in dem ausgelieferten configure-Script ein "AX_SET_VERSION_INFO" überhaupt nicht. Sehr eigenartig
Zuletzt geändert von gms am 18.08.2008 22:04:51, insgesamt 1-mal geändert.

Benutzeravatar
Twilo
Beiträge: 255
Registriert: 21.04.2006 00:59:40
Wohnort: Berlin

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Twilo » 18.08.2008 22:01:58

Hallo,

Code: Alles auswählen

autoconf (GNU Autoconf) 2.61
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software.  You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.
---
Autoconf 2.50 chosen by Debian wrapper script.
For information and tuning advice see autoconf(1).
nachdem ich das src Verzeichnis gelsöcht und neu angelegt habe, läuft configure jetzt durch, erhalte jedoch folgenden Fehler

Code: Alles auswählen

[...]
dgtnixTest.cpp: In function ‘int main(int, char**)’: dgtnixTest.cpp:45: error: ‘exit’ was not declared in this scope dgtnixTest.cpp:68: error: ‘exit’ was not declared in this scope make[2]: *** [dgtnixTest-dgtnixTest.o] Fehler 1 make[2]: Leaving directory `/home/usr/src/dgtnix-1.9.1/utils' make[1]: *** [all-recursive] Fehler 1 make[1]: Leaving directory `/home/usr/src/dgtnix-1.9.1' make: *** [all] Fehler 2
mfg
Twilo

Benutzeravatar
Twilo
Beiträge: 255
Registriert: 21.04.2006 00:59:40
Wohnort: Berlin

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Twilo » 18.08.2008 22:03:22

Hallo,

ich seh gerade, dass vergessen habe hinzuschreiben, was ich für ein System habe :?

System: Debian sid 64bit

mfg
Twilo

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von gms » 18.08.2008 22:09:07

"exit" wird in der "stdlib.h" deklariert, anscheinend wird diese bei dir nicht inkludiert

schau einmal ob bei dir der Eintrag in der config.h

Code: Alles auswählen

/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
auf 1 steht, ansonsten setze es auf 1

Benutzeravatar
Twilo
Beiträge: 255
Registriert: 21.04.2006 00:59:40
Wohnort: Berlin

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Twilo » 18.08.2008 22:18:24

Hallo,

der Wert ist eine 1

mfg
Twilo

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von gms » 18.08.2008 22:20:52

füge einfach in "utils/dgtnixTest.cpp" ein

Code: Alles auswählen

#include <stdlib.h>
ein ( z.B nach dem "#include <string.h>" in Zeile 25)

Benutzeravatar
Twilo
Beiträge: 255
Registriert: 21.04.2006 00:59:40
Wohnort: Berlin

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Twilo » 18.08.2008 22:36:54

Hallo,

er kommt jetzt schon mal weiter :-)

den nächsten Fehler erkenne ich leider nicht

mfg
Twilo

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von gms » 18.08.2008 22:51:01

da hast du ein Problem mit deinen Compiler-Settings, hast du diese über die Environmentvariablen CC bzw CXX spezifiziert ?
Für den gcc wird bei dir "/usr/bin/gcc-4.1" verwendet, der g++ wurde ohne Pfadangabe gesetzt, verweist aber auf eine Version 4.3.

Code: Alles auswählen

/home/usr/bin/../lib/gcc/../../include/c++/4.3/cstddef:48:25: error: stddef.h: Datei oder Verzeichnis nicht gefunden
und warum in "/home/usr/bin" ?

Benutzeravatar
Twilo
Beiträge: 255
Registriert: 21.04.2006 00:59:40
Wohnort: Berlin

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Twilo » 18.08.2008 23:03:32

Hallo,
gms hat geschrieben:da hast du ein Problem mit deinen Compiler-Settings, hast du diese über die Environmentvariablen CC bzw CXX spezifiziert ?
Für den gcc wird bei dir "/usr/bin/gcc-4.1" verwendet, der g++ wurde ohne Pfadangabe gesetzt, verweist aber auf eine Version 4.3.

Code: Alles auswählen

/home/usr/bin/../lib/gcc/../../include/c++/4.3/cstddef:48:25: error: stddef.h: Datei oder Verzeichnis nicht gefunden
das Problem mit GCC sollte jetzt behoben sein, es treten aber leider immer noch Fehler auf
gms hat geschrieben:und warum in "/home/usr/bin" ?
ich hatte damals, warum auch immer, automatisch partionieren lassen.
/usr war natürlich nach einer gewissen Zeit vollgelaufen. Da ich keine Zeit hatte mein System neu zu machen oder die Partitionsgröße zu ändern und ich das System irgendwann eh neu aufsetzen wollte, hab ich /usr nach /home/usr verschoben und ann ein Symlink gesetzt. Seit dem sind jetzt schon Monate vergangen ;-)

mfg
Twilo

Benutzeravatar
Twilo
Beiträge: 255
Registriert: 21.04.2006 00:59:40
Wohnort: Berlin

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Twilo » 18.08.2008 23:44:20

Hallo,
/home/usr/bin/../lib/gcc/../../include/c++/4.3/cstddef:48:25: error: stddef.h: Datei oder Verzeichnis nicht gefunden

Code: Alles auswählen

/home/usr/include/linux/stddef.h
/home/usr/include/lsb3/stddef.h
/home/usr/share/sdcc/include/stddef.h
/home/usr/share/sdcc/include/pic16/stddef.h
/home/usr/src/linux-headers-2.6.26-1-common/include/linux/stddef.h
/home/usr/src/linux-headers-2.6.26-1-amd64/include/linux/stddef.h
/home/usr/src/linux-headers-2.6.26-1-common-openvz/include/linux/stddef.h
/home/usr/src/linux-headers-2.6.26-1-openvz-amd64/include/linux/stddef.h
/home/usr/lib/gcc/x86_64-linux-gnu/4.3/include/stddef.h
/home/usr/lib/gcc/x86_64-linux-gnu/4.1/include/stddef.h
/home/usr/lib/gcc/x86_64-linux-gnu/4.2/include/stddef.h
/home/usr/lib/gcc/x86_64-linux-gnu/3.4.6/include/stddef.h
wo muss die Datei stddef.h existieren?

mfg
Twilo

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von gms » 19.08.2008 12:42:53

Twilo hat geschrieben: wo muss die Datei stddef.h existieren?
ich habe das Paket jetzt auch unter Debian SID x86_64 erfolgreich gebaut.
danach zeigt mir ein "find . -name "*.Po" -print0 | xargs -0 grep -H stddef.h" folgende Abhängigkeit an:

Code: Alles auswählen

root@csxgen2:~/tmp/dgtnix-1.9.1# find . -name "*.Po" -print0 | xargs -0 grep -H stddef.h
./utils/.deps/dgtnixTest-dgtnixTest.Po:  /usr/lib/gcc/x86_64-linux-gnu/4.3.1/include/stddef.h \
./utils/.deps/dgtnixTest-dgtnixTest.Po:  /usr/lib/gcc/x86_64-linux-gnu/4.3.1/include/stddef.h \
./utils/.deps/dgtnixTest-dgtnixTest.Po:/usr/lib/gcc/x86_64-linux-gnu/4.3.1/include/stddef.h:
./utils/.deps/dgtnixTest-dgtnixTest.Po:/usr/lib/gcc/x86_64-linux-gnu/4.3.1/include/stddef.h:
root@csxgen2:~/tmp/dgtnix-1.9.1#  
den "'exit' was not declared" Fehler hatte ich hier allerdings auch und mußte daher auch die "utils/dgtnixTest.cpp" anpassen. Gestern. mit dem gcc 4.1, hatte ich diesen Fehler nicht, wahrscheinlich wird dort die "stdlib.h" Headerdatei indirekt inkludiert.

Abgesehen von der fehlenden Headerdatei, gibts bei dir aber auch noch einen "version mismatch": gcc 4.1 <-> g++ 4.3. Da ist schon das "configure" nicht sauber gelaufen.

Gruß
gms

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Spasswolf » 19.08.2008 14:01:39

Gestern. mit dem gcc 4.1, hatte ich diesen Fehler nicht, wahrscheinlich wird dort die "stdlib.h" Headerdatei indirekt inkludiert.
Das liegt vermutlich daran, dass gcc-4.3 zickiger als gcc-4.1 ist:
http://gcc.gnu.org/gcc-4.3/porting_to.html
http://bugs.gentoo.org/show_bug.cgi?id=198121

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von gms » 19.08.2008 14:35:18

Spasswolf hat geschrieben: Das liegt vermutlich daran, dass gcc-4.3 zickiger als gcc-4.1 ist:
in diesem speziellen Fall nicht.
Der 4.1er würde bei einer fehlenden Deklaration auch einen Fehler bringen:

Code: Alles auswählen

root@gms2:~/tmp# g++-4.1 -o x x.cpp
x.cpp: In function 'int main()':
x.cpp:1: error: 'exit' was not declared in this scope
und "stdlib.h" wird tatsächlich als Abhängigkeit gelistet, obwohl diese Headerdatei nicht direkt inkludiert wurde:

Code: Alles auswählen

root@gms2:~/tmp/dgtnix-1.9.1# grep stdlib.h utils/.deps/dgtnixTest-dgtnixTest.Po
  /usr/include/c++/4.1.3/cstdlib /usr/include/stdlib.h \
/usr/include/stdlib.h:
Gruß
gms

Benutzeravatar
Twilo
Beiträge: 255
Registriert: 21.04.2006 00:59:40
Wohnort: Berlin

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Twilo » 19.08.2008 21:31:09

Hallo,

ich habe das Verzeichznis /usr/src/dgtnix-1.9.1 gelöscht, neu entpackt, in der Datei utils/dgtnixTest.cpp die Zeile hinzugefügt und anschliessend ./configure und make aufgerufen. Der Fehler kommt immer noch :?

gcc und g++ "sollten" gleich

Code: Alles auswählen

kay-desktop:~# gcc -v
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.1-9' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-cld --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.3.1 (Debian 4.3.1-9)
kay-desktop:~# g++ -v
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.1-9' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-cld --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.3.1 (Debian 4.3.1-9)
mfg
Twilo

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von gms » 19.08.2008 21:35:39

und gibts bei dir die Datei "/usr/lib/gcc/x86_64-linux-gnu/4.3.1/include/stddef.h" ?

Benutzeravatar
Twilo
Beiträge: 255
Registriert: 21.04.2006 00:59:40
Wohnort: Berlin

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Twilo » 19.08.2008 21:40:52

Hallo,
gms hat geschrieben:und gibts bei dir die Datei "/usr/lib/gcc/x86_64-linux-gnu/4.3.1/include/stddef.h" ?
ja

Code: Alles auswählen

kay@kay-desktop:~$ ls -ld /usr/lib/gcc/x86_64-linux-gnu/4.3.1/include/stddef.h
-rw-r--r-- 1 root root 12695 15. Aug 00:08 /usr/lib/gcc/x86_64-linux-gnu/4.3.1/include/stddef.h
/usr/lib/gcc/x86_64-linux-gnu/4.3.1 und /usr/lib/gcc/x86_64-linux-gnu/4.3.2 zeigen auf /usr/lib/gcc/x86_64-linux-gnu/4.3

mfg
Twilo

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von gms » 19.08.2008 21:58:03

zwei Links sollten dort eigentlich auch nicht für die 4.3er Version sein, diese sind aber bei mir auch vorhanden

ändere einmal diese Zeile

Code: Alles auswählen

root@csxgen2:~/tmp/dgtnix-1.9.1# grep ^DEFAULT_INCLUDES utils/Makefile
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -I/usr/lib/gcc/x86_64-linux-gnu/4.3.1/include
und versuchs nochmal

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Spasswolf » 19.08.2008 22:00:53

Oder probier mal "#include <cstddef>".

Benutzeravatar
Twilo
Beiträge: 255
Registriert: 21.04.2006 00:59:40
Wohnort: Berlin

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Twilo » 19.08.2008 22:45:30

Hallo,

bei beiden Varianten erhalte ich die gleiche Fehlermeldung.
Was mich wundert, warum das bei gms klappt 8O

mfg
Twilo

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Spasswolf » 19.08.2008 22:51:05

So, jetzt hab ich's auch mal ausprobiert (mit gcc-4.3.1) und konnte das Problem mit "#include <cstdlib>" lösen.

Benutzeravatar
Twilo
Beiträge: 255
Registriert: 21.04.2006 00:59:40
Wohnort: Berlin

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von Twilo » 19.08.2008 23:08:13

Hallo,

damit klappt es bei mir immer noch nicht
http://nopaste.debianforum.de/10483

in der Datei utils/dgtnixTest.cpp sind jetzt folgende Zeilen vorhanden:

Code: Alles auswählen

#include <config.h>

using namespace std;
#include <stdlib.h>
#include <cstddef>
#include <cstdlib>
#include <iostream>
#include <errno.h>
#include <dgtnix.h>
#include <string.h>
mfg
Twilo

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Kompilierfehler bei dgtnix 1.9.1

Beitrag von gms » 20.08.2008 08:37:45

Spasswolf hat geschrieben:So, jetzt hab ich's auch mal ausprobiert (mit gcc-4.3.1) und konnte das Problem mit "#include <cstdlib>" lösen.
Wenn ich dich richtig verstehe, hattest du auch den Fehler wegen der fehlenden Deklaration der "exit"-Funktion. Ein "#include <cstdlib>", statt dem "#include <stdlib.h>" ist hier in der Tat eine schönere Lösung für dieses Problem.

@Twilo
die C-Headerdateien werden besser nach den C++-Headerdateien inkludiert, also entweder so (dem Vorschlag von Spasswolf folgend):

Code: Alles auswählen

using namespace std;
#include <iostream>
#include <cstdlib> // Verwendung der C++ STDLIB Headerdatei
#include <errno.h>
#include <dgtnix.h>
#include <string.h>
oder so ( meinem Vorschlag folgend):

Code: Alles auswählen

using namespace std;
#include <iostream>
#include <errno.h>
#include <dgtnix.h>
#include <stdlib.h> // Verwendung der C STDLIB Headerdatei
#include <string.h>
bei beiden Varianten sollte die "stddef.h" aber gefunden werden, insbesondere nachdem sie sich in dem Standard-Include-Verzeichnis ( /usr/lib/gcc/x86_64-linux-gnu/4.3.1/include ) des Compilers befindet und wir dieses Verzeichnis auch noch zusätzlich als Inkludeverzeichnis aufgelistet haben, obwohl das gar nicht nötig wäre.

Antworten