URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3173
[ Назад ]

Исходное сообщение
"Можно ли скомпилить прогу так, чтобы она запускалась на другой машине?"

Отправлено Андрей , 15-Июл-04 19:14 
Доброго времени суток.
Можно ли скомпилить прогу так, чтобы она запускалась на другой линух-машине без библиотек?
Компилю на одной машине - работает. Беру бинарник, переношу на другую машину - виснет(библиотеки - libxml2). Я думаю, что дело в библиотеках (или их отсутствии).
Подскажите, кто знает.

С уважением,
Андрей.


Содержание

Сообщения в этом обсуждении
"Можно ли скомпилить прогу так, чтобы она запускалась на друг..."
Отправлено mirya , 15-Июл-04 20:13 
`man cc` на предмет "-static"

"Можно ли скомпилить прогу так, чтобы она запускалась на друг..."
Отправлено fefelov , 15-Июл-04 22:34 
Неплохо также посмотреть, что выдает ldd



"Можно ли скомпилить прогу так, чтобы она запускалась на друг..."
Отправлено Андрей , 16-Июл-04 12:24 
>Неплохо также посмотреть, что выдает ldd

ldd выдаёт следующее.
[root@websitebuilder script]# ldd client3
        libxml2.so.2 => /usr/local/lib/libxml2.so.2 (0x4002c000)
        libz.so.1 => /usr/lib/libz.so.1 (0x40110000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x4011e000)
        libm.so.6 => /lib/tls/libm.so.6 (0x4012b000)
        librt.so.1 => /lib/librt.so.1 (0x4014d000)
        libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
[root@websitebuilder script]#

Но что это и как с этим бороться? Что это в принципе понятно - а как бороться?

Прочитал ман гсс про статик. Пробовал компилить -static-libgcc - не помогает. Подскажите, пожалуйста.


"Можно ли скомпилить прогу так, чтобы она запускалась на друг..."
Отправлено adi , 20-Июл-04 10:00 
>>Неплохо также посмотреть, что выдает ldd
>
>ldd выдаёт следующее.
>[root@websitebuilder script]# ldd client3
>        libxml2.so.2 => /usr/local/lib/libxml2.so.2 (0x4002c000)
>        libz.so.1 => /usr/lib/libz.so.1 (0x40110000)
>        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x4011e000)
>        libm.so.6 => /lib/tls/libm.so.6 (0x4012b000)
>        librt.so.1 => /lib/librt.so.1 (0x4014d000)
>        libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
>        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
>[root@websitebuilder script]#
>
>Но что это и как с этим бороться? Что это в принципе
>понятно - а как бороться?
>
>Прочитал ман гсс про статик. Пробовал компилить -static-libgcc - не помогает. Подскажите,
>пожалуйста.
Нужно иметь в наличии библиотеки libxml2.a, libz.a, libpthread.a .. и т.д.
Библиотеки типа *.so линкуются только динамически.

"Можно ли скомпилить прогу так, чтобы она запускалась на друг..."
Отправлено mirya , 20-Июл-04 13:07 
для этого необходимо взять исходники всего "непереносимого" (т.е., напр., pthread есть на любой БСД) и перекомпилить со -static (обычно делается в ./configure --enable-static).