So, ich bin es mal wieder. Ich habe das Rennspiel TORCS aus den Quellen kompiliert, wie in der Readme-Datei beschrieben. Es ist die Version 1.3.8. Kompiliervorgang fehlerfrei durchgelaufen, alle dafür benötigten Bibliotheken sind installiert.
Leider stürzt das Programm immer wieder ab. Ich starte Torcs auf der Konsole. Hier die Ausgabe:
$ torcs Visual Properties Report ------------------------ Compatibility mode, properties unknown. WARNING: grscene:initBackground Failed to open shadow2.rgb for reading WARNING: no shadow mapping on cars for this track OpenAL backend info: Vendor: OpenAL Community Renderer: OpenAL Soft Version: 1.1 ALSOFT 1.23.1 Available sources: 256 Available buffers: 1024 or more Dynamic Sources: requested: 234, created: 234 #static sources: 22 #dyn sources : 234
Beim Absturz erscheint folgendes:
*** buffer overflow detected ***: terminated /usr/local/bin/torcs: Zeile 53: 11640 Abgebrochen (Speicherabzug geschrieben) $LIBDIR/torcs-bin -l $LOCAL_CONF -L $LIBDIR -D $DATADIR $*
Die /usr/local/bin/torcs sieht folgendermaßen aus:
#! /bin/bash
# src/linux/torcs. Generated from torcs.in by configure.
##############################################################################
#
# file : torcs.in
# created : Sat Sep 11 20:20:04 CEST 1999
# copyright : (C) 1999 by Eric Espie
# email : torcs@free.fr
# version : $Id$
#
##############################################################################
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
##############################################################################
prefix=/usr/local
exec_prefix=${prefix}
BINDIR=${exec_prefix}/bin
LIBDIR=${exec_prefix}/lib/torcs
DATAROOTDIR=${prefix}/share
DATADIR=$DATAROOTDIR/games/torcs
VARDIR=${prefix}/var/games/torcs
LOCAL_CONF=$HOME/.torcs
if [ -d $DATADIR ]
then
if [ ! -d $LOCAL_CONF ]
then
rm -rf $LOCAL_CONF
mkdir -p $LOCAL_CONF
echo "$LOCAL_CONF created, copying/linking game data"
fi
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$LIBDIR/lib
cd $DATADIR
if [ -f $LIBDIR/setup_linux.sh ]
then
/bin/bash $LIBDIR/setup_linux.sh $LOCAL_CONF
if [ $? -ne 0 ]
then
exit 1
fi
else
echo "$LIBDIR/setup_linux.sh file does not exist, check your installation"
exit 1
fi
### Zeile 53:
case $1 in
# List the library used
-l) shift
ldd $LIBDIR/torcs-bin
;;
# Run under GDB
-d) shift
gdb $LIBDIR/torcs-bin <<EOF
r -l $LOCAL_CONF -L $LIBDIR -D $DATADIR $*
bt
EOF
;;
-g) shift
valgrind --leak-check=yes --log-file=$LOCAL_CONF/valgrind.log $LIBDIR/torcs-bin -l $LOCAL_CONF -L $LIBDIR -D $DATADIR $*
;;
-e) shift
echo "cd $DATADIR"
echo "export LD_LIBRARY_PATH=$LIBDIR/lib:$LD_LIBRARY_PATH"
echo "gdb $LIBDIR/torcs-bin"
echo "r -l $LOCAL_CONF -L $LIBDIR -D $DATADIR $*"
;;
-h)
echo "usage: torcs [-l|-d|-g|-e] [-s] [-r]"
echo " -l list the dynamically linked libraries"
echo " -d run under gdb and print stack trace on exit"
echo " -g run under valgrind (requires a debug build for useful results)"
echo " -e display the commands to issue when you want to run under gdb"
echo " -s disable multitexturing, important for older graphics cards"
echo " -r run race in command line mode, see FAQ for details"
echo " -k suppress dlclose for modules (useful to get symbol information with valgrind)"
;;
# Normal run
*) $LIBDIR/torcs-bin -l $LOCAL_CONF -L $LIBDIR -D $DATADIR $*
;;
esac
exit 0
fi
echo "TORCS location not found"Was stimmt da nicht? Jetzt bitte keine Fragen wie "warum hast su das nicht aus den Paketquellen installiert?" Ich will verstehen, was da los ist.