Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > бинарник под i386 и AMD


Автор: semibug 16.1.2011, 20:40
Простите за ламерский вопрос.
Компилировал бинарник в GCC (Ubuntu10.10) на машине с процом Intel. Используется библиотека libusb1.0.
На другой машине (Intel) запускается нормально, а на машине с процом AMD при запуске ругается, что не может найти shared либу, входящую в libusb1.0 (хотя физически она присутствует на винте). Бинарных пактов libusb на сайте ubuntu два (под i386 и AMD64), вот и приходит в голову мысль - надо пересобрать бинарник в системе AMD64.

Автор: null56 16.1.2011, 23:18
Цитата(semibug @  16.1.2011,  20:40 Найти цитируемый пост)
Простите за ламерский вопрос.

где вопрос?

Добавлено @ 23:20
если надо или нет перекомпилить, то само собой надо... думаю в заголовке elf вся инфа хранится, поэтому и отвергает 32 битные бинарники загрузчик, когда идет поиск твоей либы, а находится 64 битная версия... хотя практически можно создать 32 битное окружение и заюзать там твой 32 битный бинарник, ключевое слово chroot

Добавлено через 7 минут и 38 секунд
Цитата(semibug @  16.1.2011,  20:40 Найти цитируемый пост)
На другой машине (Intel) запускается нормально, а на машине с процом AMD при запуске ругается, что не может найти shared либу, входящую в libusb1.0 (хотя физически она присутствует на винте). Бинарных пактов libusb на сайте ubuntu два (под i386 и AMD64), вот и приходит в голову мысль - надо пересобрать бинарник в системе AMD64.

ой, недоглядел....
сделай `uname -a` и вывод запости, речь не о процессоре, а о разрядности твоей ос

Автор: semibug 17.1.2011, 17:03

Код

uname -a
Linux user 2.6.35-22-generic #33-Ubuntu SMP Sep 19 20:32:27 UTC 2010 x86_64 GNU/Linux


Такой вот вывод.
Хочу попробовать теперь собрать на этой машине и посмотреть, как поведет себя исполняемый файл.

Автор: null56 19.1.2011, 04:02
вот вывод показывает, что данная машина работает на 64 разрядном ядре
Цитата(semibug @  17.1.2011,  17:03 Найти цитируемый пост)
uname -a
Linux user 2.6.35-22-generic #33-Ubuntu SMP Sep 19 20:32:27 UTC 2010 x86_64 GNU/Linux

проверь машины на которых все запускается, скорее всего на них стоят 32 разрядные ядра

Автор: semibug 19.1.2011, 10:57
Верно, на 32-х битных все работает на ура.
Выходит 32-х битный бинарник не захочет работать как есть на 64-х битной системе. По аналогии с другими пакетами думаю теперь собирать два варианта.
Спасибо!

Автор: xvr 19.1.2011, 11:39
Цитата(semibug @  19.1.2011,  10:57 Найти цитируемый пост)
Выходит 32-х битный бинарник не захочет работать как есть на 64-х битной системе.
Не совсем так - 32х битный бинарник не заработает с 64х битной so'кой (и наоборот)

Цитата(semibug @  19.1.2011,  10:57 Найти цитируемый пост)
По аналогии с другими пакетами думаю теперь собирать два варианта.
А вот это правильно


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)