[Gelöst] Compiler-Probleme beim Bauen von ds26

Strandläufer

Neuer User
Mitglied seit
16 Jan 2006
Beiträge
58
Punkte für Reaktionen
0
Punkte
6
kriegaex: Thema aus dem Release-Thread ds26-15.2 hierher ausgelagert.

Ich versuche gerade die Firmware zu compilieren. Im Gegensatz zu den altebn Versionen geht es aber nicht. Folgendes wird ausgegeben:
Code:
make -j1 -C source/lzma443/C/7zip/Compress/LZMA_Lib
make[1]: Entering directory `/home/hayen/download/Fritz/ds26-15.2/source/lzma443/C/7zip/Compress/LZMA_Lib'
g++ -O3 -Wall -c  -I ../../../ ZLib.cpp
In file included from /usr/include/sys/types.h:31,
                 from /usr/include/zconf.h:282,
                 from /usr/include/zlib.h:34,
                 from ZLib.cpp:28:
/usr/include/bits/types.h:31:20: stddef.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/zconf.h:282,
                 from /usr/include/zlib.h:34,
                 from ZLib.cpp:28:
/usr/include/sys/types.h:147:20: stddef.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/zconf.h:283,
                 from /usr/include/zlib.h:34,
                 from ZLib.cpp:28:
/usr/include/unistd.h:199:20: stddef.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/zconf.h:283,
                 from /usr/include/zlib.h:34,
                 from ZLib.cpp:28:
/usr/include/unistd.h:329: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:329: error: syntax error before `)' token
/usr/include/unistd.h:335: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:335: error: syntax error before `)' token
/usr/include/unistd.h:345: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:345: error: syntax error before `,' token
/usr/include/unistd.h:353: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:353: error: syntax error before `,' token
/usr/include/unistd.h:373: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:373: error: syntax error before `,' token
/usr/include/unistd.h:377: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:377: error: syntax error before `,' token
/usr/include/unistd.h:473: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:473: error: syntax error before `)' token
In file included from /usr/include/zconf.h:283,
                 from /usr/include/zlib.h:34,
                 from ZLib.cpp:28:
/usr/include/unistd.h:570: error: syntax error before `(' token
/usr/include/unistd.h:742: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:742: error: syntax error before `)' token
/usr/include/unistd.h:778: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:778: error: syntax error before `)' token
/usr/include/unistd.h:789: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:789: error: syntax error before `)' token
/usr/include/unistd.h:825: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:825: error: syntax error before `)' token
In file included from /usr/include/zconf.h:283,
                 from /usr/include/zlib.h:34,
                 from ZLib.cpp:28:
/usr/include/unistd.h:847: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:847: error: syntax error before `)' token
/usr/include/unistd.h:854: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:854: error: syntax error before `)' token
/usr/include/unistd.h:865: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:865: error: syntax error before `)' token
/usr/include/unistd.h:867: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:867: error: syntax error before `)' token
/usr/include/unistd.h:885: error: type specifier omitted for parameter `size_t'
/usr/include/unistd.h:885: error: syntax error before `,' token
In file included from ZLib.cpp:40:
../../../Common/MyWindows.h:22:35: stddef.h: Datei oder Verzeichnis nicht gefunden
In file included from ../../../Common/MyWindows.h:23,
                 from ZLib.cpp:40:
/usr/include/string.h:33:20: stddef.h: Datei oder Verzeichnis nicht gefunden
In file included from ../../../Common/MyWindows.h:23,
                 from ZLib.cpp:40:
/usr/include/string.h:39: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:39: error: syntax error before `)' token
/usr/include/string.h:43: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:43: error: syntax error before `)' token
/usr/include/string.h:52: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:52: error: syntax error before `)' token
/usr/include/string.h:59: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:59: error: syntax error before `)' token
/usr/include/string.h:62: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:62: error: syntax error before `)' token
/usr/include/string.h:66: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:66: error: syntax error before `)' token
/usr/include/string.h:77: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:77: error: syntax error before `)' token
/usr/include/string.h:88: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:88: error: syntax error before `)' token
/usr/include/string.h:96: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:96: error: syntax error before `)' token
/usr/include/string.h:102: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:102: error: syntax error before `)' token
/usr/include/string.h:109: error: syntax error before `(' token
In file included from ../../../Common/MyWindows.h:23,
                 from ZLib.cpp:40:
/usr/include/string.h:124: error: syntax error before `(' token
/usr/include/string.h:138: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:138: error: syntax error before `)' token
/usr/include/string.h:184: error: syntax error before `(' token
/usr/include/string.h:188: error: syntax error before `(' token
/usr/include/string.h:225: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:225: error: syntax error before `,' token
/usr/include/string.h:232: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:232: error: syntax error before `)' token
/usr/include/string.h:235: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:235: error: syntax error before `)' token
/usr/include/string.h:242: error: syntax error before `(' token
/usr/include/string.h:249: error: syntax error before `(' token
/usr/include/string.h:281: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:281: error: syntax error before `)' token
/usr/include/string.h:288: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:288: error: syntax error before `)' token
/usr/include/string.h:292: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:292: error: syntax error before `)' token
/usr/include/string.h:296: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:296: error: syntax error before `)' token
/usr/include/string.h:299: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:299: error: syntax error before `)' token
/usr/include/string.h:329: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:329: error: syntax error before `)' token
/usr/include/string.h:341: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:341: error: syntax error before `,' token
/usr/include/string.h:370: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:370: error: syntax error before `)' token
/usr/include/string.h:373: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:373: error: syntax error before `)' token
/usr/include/string.h:380: error: type specifier omitted for parameter `size_t'
/usr/include/string.h:380: error: syntax error before `)' token
In file included from ../LZMA/LZMADecoder.h:6,
                 from ZLib.cpp:41:
../../../Common/MyCom.h: In constructor `CMyComBSTR::CMyComBSTR()':
../../../Common/MyCom.h:83: error: `NULL' undeclared (first use this function)
../../../Common/MyCom.h:83: error: (Each undeclared identifier is reported only
   once for each function it appears in.)
In file included from ../LZMA/LZMADecoder.h:7,
                 from ZLib.cpp:41:
../../../Common/Alloc.h:6:20: stddef.h: Datei oder Verzeichnis nicht gefunden
In file included from ../LZMA/LZMADecoder.h:7,
                 from ZLib.cpp:41:
../../../Common/Alloc.h: At global scope:
../../../Common/Alloc.h:8: error: `size_t' was not declared in this scope
../../../Common/Alloc.h:8: error: syntax error before `)' token
In file included from ../LZ/LZOutWindow.h:7,
                 from ../LZMA/LZMADecoder.h:9,
                 from ZLib.cpp:41:
../../Common/OutBuffer.h:55: error: type specifier omitted for parameter `
   size_t'
../../Common/OutBuffer.h:55: error: syntax error before `)' token
../../Common/OutBuffer.h: In member function `void COutBuffer::WriteBytes(...)
   ':
../../Common/OutBuffer.h:57: error: `size_t' undeclared (first use this
   function)
../../Common/OutBuffer.h:57: error: syntax error before `;' token
../../Common/OutBuffer.h:57: error: `i' undeclared (first use this function)
../../Common/OutBuffer.h:57: error: `size' undeclared (first use this function)
../../Common/OutBuffer.h:58: error: `data' undeclared (first use this function)
make[1]: *** [ZLib.o] Fehler 1
make[1]: Leaving directory `/home/hayen/download/Fritz/ds26-15.2/source/lzma443/C/7zip/Compress/LZMA_Lib'
make: *** [source/lzma443/C/7zip/Compress/LZMA_Lib/liblzma.a] Fehler 2

Leider sagt mir das gar nichts. Kann mir da jemand auf die Sprünge helfen?

kriegaex: Code-Tags eingefügt.
 
Zuletzt bearbeitet von einem Moderator:
Auf dem Host-System fehlt stddef.h. Andere Include-Dateien scheinen da zu sein. Wurde die Datei versehentlich gelöscht?

Und ändere im Beitrag die Tags von QUOTE auf CODE.
 
Ich habe das Peket heruntergeladen und nach Vorschrift entpackt. Dann nach Vorschrift Make menuconfig und dann make probiert. Oder gehört diese stddef.h nicht in das Paket? Wozu dann?
 
Es geht um Die Datei /usr/include/linux/stddef.h auf dem Host-System. Diese hat mit dem ds-mod nichts zu tun.

Je nach verwendetem Linux kann es auch sein, daß ein Paket für die Programm-Entwicklung noch fehlt, in dem diese Datei enthalten ist.
 
Die Datei befindet sich aber in dem von Dir angegebenen Verzeichnis.
 
Dann sollte es noch eine Datei geben, in /usr/lib*/gcc/*/*/include/stddef.h
Der erste Stern steht für 64 auf einen 64 Bit System, sonst leer.
Der zweite Stern steht für die Bezeichnung des Systems, etwas in der Art "i386-linux" oder "x86_64-linux".
Der dritte Stern steht für die Versionsnummer des C-Compilers.

Kann auch sein, daß die Datei bei manchen Systemen anderswo steht.

Wenn Du
Code:
echo '#include <stddef.h>' | cpp
eingibst, sollte auf jeden Fall etwas an Ausgabe kommen und nicht die Meldung, daß stddef.h nicht gefunden wird.

Wenn Du nichts findest, kannst Du folgenden Inhalt nach /usr/include/stddef.h schreiben:
Code:
typedef long int ptrdiff_t;
typedef long unsigned int size_t;
typedef int wchar_t;
 
Hast du alle Compiler bzw. Bibliotheken installiert die man braucht um den DS-Mod zuerstellen.

schau mal hier nach und vergeliche die mal ob du sie auch alle hast auf dein Linux.
 
Zuletzt bearbeitet:
Ich bekomme folgendes ausgegeben:
Code:
echo '#include <stddef.h>' | cpp
# 1 "<stdin>"
# 1 "<eingebaut>"
# 1 "<Kommandozeile>"
# 1 "<stdin>"
# 1 "/usr/lib/gcc-lib/i486-linux-gnu/3.3.6/include/stddef.h" 1 3 4
# 151 "/usr/lib/gcc-lib/i486-linux-gnu/3.3.6/include/stddef.h" 3 4
typedef int ptrdiff_t;
# 213 "/usr/lib/gcc-lib/i486-linux-gnu/3.3.6/include/stddef.h" 3 4
typedef unsigned int size_t;
# 325 "/usr/lib/gcc-lib/i486-linux-gnu/3.3.6/include/stddef.h" 3 4
typedef long int wchar_t;
# 2 "<stdin>" 2
 
So ungefähr sieht es bei mir auch aus. Dann ist nur noch die Frage, warum stddef.h nicht gefunden wird, wenn es in einem Programm verwendet wird.

Was mir noch aufgefallen ist, dort wurde g++ und nicht gcc verwendet.
Gib mal folgendes ein und schau nach, welche Verzeichnisse in Include-Pfad genannt werden:
Code:
echo '#include <stddef.h>'  > test.c
echo '#include <stddef.h>'  > test.cpp
gcc -v -E test.c
g++ -v -E test.cpp
rm test.c test.cpp
Die Dateien test.c und test.cpp werden dabei erstellt und anschließend wieder gelöscht.
 
Hier die Ausgabe:
Code:
hayen@Counterstrike:~/download/Fritz/ds26-15.2$ echo '#include <stddef.h>'  > test.c
hayen@Counterstrike:~/download/Fritz/ds26-15.2$ echo '#include <stddef.h>'  > test.cpp
hayen@Counterstrike:~/download/Fritz/ds26-15.2$ gcc -v -E test.c
Lese Spezifikationen von /usr/lib/gcc-lib/i486-linux-gnu/3.3.6/specs
Konfiguriert mit: ../src/configure -v --enable-languages=c,c++ --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --enable-__cxa_atexit --with-system-zlib --enable-nls --without-included-gettext --enable-clocale=gnu --enable-debug i486-linux-gnu
Thread-Modell: posix
gcc-Version 3.3.6 (Debian 1:3.3.6-15)
 /usr/lib/gcc-lib/i486-linux-gnu/3.3.6/cc1 -E -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=6 test.c
nicht vorhandenes Verzeichnis »/usr/local/include/i486-linux-gnu« wird ignoriert
nicht vorhandenes Verzeichnis »/usr/i486-linux-gnu/include« wird ignoriert
nicht vorhandenes Verzeichnis »/usr/include/i486-linux-gnu« wird ignoriert
#include "..." Suche beginnt hier:
#include <...> Suche beginnt hier:
 /usr/local/include
 /usr/lib/gcc-lib/i486-linux-gnu/3.3.6/include
 /usr/include
Ende der Suchliste.
# 1 "test.c"
# 1 "<eingebaut>"
# 1 "<Kommandozeile>"
# 1 "test.c"
# 1 "/usr/lib/gcc-lib/i486-linux-gnu/3.3.6/include/stddef.h" 1 3 4
# 151 "/usr/lib/gcc-lib/i486-linux-gnu/3.3.6/include/stddef.h" 3 4
typedef int ptrdiff_t;
# 213 "/usr/lib/gcc-lib/i486-linux-gnu/3.3.6/include/stddef.h" 3 4
typedef unsigned int size_t;
# 325 "/usr/lib/gcc-lib/i486-linux-gnu/3.3.6/include/stddef.h" 3 4
typedef long int wchar_t;
# 2 "test.c" 2
hayen@Counterstrike:~/download/Fritz/ds26-15.2$ g++ -v -E test.cpp
Using built-in specs.
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --enable-__cxa_atexit --with-system-zlib --enable-nls--without-included-gettext --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread model: posix
gcc version 3.3.6 (Debian 1:3.3.6-5)
 /usr/lib/gcc-lib/i486-linux/3.3.6/cc1plus -E -D__GNUG__=3 -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=6 -D_GNU_SOURCE test.cpp
ignoring nonexistent directory "/usr/lib/gcc-lib/i486-linux/3.3.6/include"
ignoring nonexistent directory "/usr/i486-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/3.3
 /usr/include/c++/3.3/i486-linux
 /usr/include/c++/3.3/backward
 /usr/local/include
 /usr/include
End of search list.
# 1 "test.cpp"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "test.cpp"
test.cpp:1:20: stddef.h: Datei oder Verzeichnis nicht gefunden

Anmerkung. Habe mir jetzt auf einem Windowsrechner StinkyLinux aufgespielt und es geschafft die FW zu kompilieren. Komsich das dies nicht wie bisher auf dem Linuxrechner ging.
 
Zuletzt bearbeitet:
Der C Compiler ist etwas anders konfiguriert als der C++ Compiler.
stddef.h ist in /usr/lib/gcc-lib/i486-linux-gnu/3.3.6/include/stddef.h.
GCC sucht in /usr/lib/gcc-lib/i486-linux-gnu/3.3.6/include
G++ sucht in /usr/lib/gcc-lib/i486-linux/3.3.6/include

Vielleicht hat es damit zu tun:
GCC:
gcc-Version 3.3.6 (Debian 1:3.3.6-15)
G++:
gcc version 3.3.6 (Debian 1:3.3.6-5)

Du kannst versuchen, g++ auf den gleichen Stand wie gcc zu bringen, und sehen, ob dann die Pfade richtig sind.

Die einfachste Lösung ist, als Root einen Link anzulegen:
Code:
ln -s i486-linux-gnu /usr/lib/gcc-lib/i486-linux
 
Moderatoren-Hinweis von kriegaex: Bitte nicht unnötig zitieren, schon gar nicht vollständige Beiträge und zweimal nicht, wenn es der direkte Vorgänger-Beitrag ist.

Die zweite Möglichkeit hat nicht geklappt. Aber das syncronisieren der Versionen hat funktioniert. Danke für den Tip.
 
Zuletzt bearbeitet von einem Moderator:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.