scheiß server?
-
Hallo ich habe ein einfaches C++ Programm geschrieben, welches ich jetzt gerne auf unseren Debian Server portieren würde.
Lokal bei meinem 2.6.24er Kernel funktioniert dieses Programm einwandfrei.
Wenn ich es auf dem Server 2.6.18 Kernel kompillieren will bekomme ich 100e von Fehlern.
Wenn ich die executable auf dem Server spiele und ausführe bekomme ich:/tmp/xy: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.4' not found (required by /tmp/xy)
Wenn ich nun lokal folgendes mache:
g++ --static main.cpp -o xy
Scheint es auf dem Server zwar zu laufen, aber das Script "tut einfach gar nix". Wenn ich valgrind laufen lasse - auf dem Server:
valgrind ./xy
........
........
Das Ende von valgrind:==17481== Conditional jump or move depends on uninitialised value(s)
==17481== at 0x80C10EF: _IO_un_link (in /home/solarys/sis/sis)
==17481== by 0x80BA13C: __fopen_internal (in /home/solarys/sis/sis)
==17481== by 0x80BA78F: fopen64 (in /home/solarys/sis/sis)
==17481== by 0x809AFFD: std::__basic_file<char>::open(char const*, std::_Ios_Openmode, int) (in /home/solarys/sis/sis)
==17481== by 0x80518D0: std::basic_filebuf<char, std::char_traits<char> >::open(char const*, std::_Ios_Openmode) (in /home/solarys/sis/sis)
==17481== by 0x8052206: std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(char const*, std::_Ios_Openmode) (in /home/solarys/sis/sis)
==17481== by 0x8048A64: read_config(char*) (in /home/solarys/sis/sis)
==17481== by 0x80491AB: main (in /home/solarys/sis/sis)
==17481==
==17481== Conditional jump or move depends on uninitialised value(s)
==17481== at 0x80C3D9E: free (in /home/solarys/sis/sis)
==17481== by 0x80BA144: __fopen_internal (in /home/solarys/sis/sis)
==17481== by 0x80BA78F: fopen64 (in /home/solarys/sis/sis)
==17481== by 0x809AFFD: std::__basic_file<char>::open(char const*, std::_Ios_Openmode, int) (in /home/solarys/sis/sis)
==17481== by 0x80518D0: std::basic_filebuf<char, std::char_traits<char> >::open(char const*, std::_Ios_Openmode) (in /home/solarys/sis/sis)
==17481== by 0x8052206: std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(char const*, std::_Ios_Openmode) (in /home/solarys/sis/sis)
==17481== by 0x8048A64: read_config(char*) (in /home/solarys/sis/sis)
==17481== by 0x80491AB: main (in /home/solarys/sis/sis)
==17481==
==17481== Conditional jump or move depends on uninitialised value(s)
==17481== at 0x80C3DBE: free (in /home/solarys/sis/sis)
==17481== by 0x80BA144: __fopen_internal (in /home/solarys/sis/sis)
==17481== by 0x80BA78F: fopen64 (in /home/solarys/sis/sis)
==17481== by 0x809AFFD: std::__basic_file<char>::open(char const*, std::_Ios_Openmode, int) (in /home/solarys/sis/sis)
==17481== by 0x80518D0: std::basic_filebuf<char, std::char_traits<char> >::open(char const*, std::_Ios_Openmode) (in /home/solarys/sis/sis)
==17481== by 0x8052206: std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(char const*, std::_Ios_Openmode) (in /home/solarys/sis/sis)
==17481== by 0x8048A64: read_config(char*) (in /home/solarys/sis/sis)
==17481== by 0x80491AB: main (in /home/solarys/sis/sis)
==17481==
==17481== ERROR SUMMARY: 111 errors from 78 contexts (suppressed: 0 from 0)
==17481== malloc/free: in use at exit: 0 bytes in 0 blocks.
==17481== malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
==17481== For counts of detected errors, rerun with: -v
==17481== All heap blocks were freed -- no leaks are possible.Ich bin ratlos
Das Programm sollte heute noch laufen...
-
Nunja ohne die Fehler kann man recht wenig mit deinem Post anfangen.
- sind die gcc Versionen identisch?
- sind alle *dev Pakete installiert?Gruesse
hago
-
Auf meinem Computer, auf dem Entwickelt wurde:
g++ -vsysadm:~$ g++ -v
Es werden eingebaute Spezifikationen verwendet.
Ziel: i486-linux-gnu
Konfiguriert mit: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --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.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread-Modell: posix
gcc-Version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)Auf dem Server:
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --with-tune=i686 --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)Welche dev Versionen werden denn genau benötigt?
-
Eigentlich sollte man auf Threads nicht antworten, die bereits im Titel solche Fäkalworte enthalten (und ich meine nicht "server
"), aber dennoch: Du musst das Programm mit der selben Bibliotheksversion übersetzen. Am einfachsten geht das, wenn Du das Programm auf der selben Linux-Distribution übersetzt, wie z. B. dem Server selbst. Auf Ubuntu übersetzen und auf Debian laufen lassen geht in der Regel nur, wenn Du statisch (also mit -static) übersetzt, so wie Du es bereits getan hast.
-
tntnet schrieb:
Eigentlich sollte man auf Threads nicht antworten, die bereits im Titel solche Fäkalworte enthalten (und ich meine nicht "server
"),
wohl war, aber vielleicht gibt es ja einen netten Moderator der den Thread etwas umbenennt
-
Wie sind die Fehlermeldungen, wenn man auf dem Server zu kompilieren versucht?