Linux & Qt & ldd Копирование библиотек.
Чтобы перенести приложение в Linux особенно если это Qt нужно скопировать все библиотеки которые требует приложение. О том какие именно библиотеки требует ваше приложение(какие использует) в Linux можно узнать выполнив в терминале:
ldd <you_programm>
Если библиотек не так много, то можно скопировать их в папку с приложением. Но что делать если библиотек очень много? Я для этих целей написал скрипт на perl.
Для того чтобы автоматизировать процесс, нужно загрузить perl; По умолчанию в debian > 6.0 идет perl в комплекте. Если этого нет то его следует поставить.
apt-get install perl
Уже поставлен?...
Далее для скрипта требуется библиотека, в терминале набираем:
cpan File::Copy
Создаем файл называем его script.pl. Открываем.
use strict;
use warnings;
use File::Copy;
#Тут путь до вашего бинарника
my $filename = "/home/<user>/myapp";
#Тут путь до папки куда копировать библиотеки.
my $outdir = "/home/<user>/Out/";
chomp(my @libraries = `/usr/bin/ldd -r -v $filename`);
foreach my $key (@libraries)
{
next if not $key;
my $first = index $key, "/";
my $second = index $key, "(";
my $newkey = substr $key, $first, ($second - $first - 1);
copy($newkey, $outdir);
print $newkey, "\n";
print $key, "\n";
}
copy($filename, $outdir);
Замените переменные $filename и $outdir на ваши.
Далее в терминале необходимо запустить скрипт, выполняем.
perl script.pl
p.s # - означает комментарий.