LINUX.ORG.RU

несколько версий libstdc++


0

1

приветствую.

есть убунту-сервер. с дефолтным компилятором станавливается определенная версия сабжевой библиотеки, и никаких проблем нет.

но, в текущей ОСи собрана и другая версия GCC, которая установлена в '/usr/local'.

сейчас, при запске программы собранной этим компилятором, получаю: ./server: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by ./server)

эта ошибка легко лечится при помощи LD_LIBRARY_PATH. но проблема в том, что программа запускается сервис-скриптом расположенном в '/etc/init.d', и я немогу понять, как в этом случае исправить ошибку.

благодарен.

★★★

Зачем?

anonymous
()
Ответ на: комментарий от ziemin

статически - нельзя. собранно под нужную.

niXman ★★★
() автор топика

Исправь сервис-скрипт. Или возьми файл run.sh от игры VVVVVV и используй его для запуска сервиса:

#!/bin/sh

# Change to game directory
CANONPATH=`readlink -f "$0"`
cd "`dirname "$CANONPATH"`"

# Check resource folders exist
if [ ! -e data ]
then
	echo "You are missing games resources `pwd`"
	echo "Your installation is incomplete!"
	exit 1
fi


MACHINE=`uname -m`
if [ "$MACHINE" = x86_64 ]
then
	LIBS=./LIB64
	BIN=./VVVVVV_64
else
	LIBS=./LIB32
	BIN=./VVVVVV_32
fi

# Run the game:
export LD_LIBRARY_PATH=$LIBS:"$LD_LIBRARY_PATH"
$BIN $@
ZenitharChampion ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.