Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Компилирование 32х битных приложений в x64 системе, Проблема с подключаемыми библиотеками 
V
    Опции темы
Zerstroer
Дата 9.1.2012, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Доброго времени суток всем!
Описываю ситуацию
Имеются:
1. ОС Debian 6.0.3 amd64
2. Компилятор: gcc
Код

evgen@evgen-notebook:~$ gcc -v
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs 
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib 
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --enable-clocale=gnu 
--enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.4.5 (Debian 4.4.5-8) 

3. Среда разработки NetBeans
4. Проект на NetBeans к которому подключены 2 библиотеки: 
А) libmysql - из репозиторного пакета libmysql-dev
Б) libmodbus - библиотека, отдельно установленная.

Необходимо скомпилировать 32-битное приложение из-под 64х-битной системы.
При компилировании выставляю в свойствах проекта NetBeans - "Архитектура - 32 бита".
Проект при компиляции выдает ошибку с вот такой вот руганью:

Код

g++ -m32    -o dist/Debug/GNU-Linux-x86/umbus build/Debug/GNU-Linux-x86/Executor.o build/Debug/GNU-Linux-x86/umbus.o build/Debug/GNU-Linux-x86/DBWorker.o 
build/Debug/GNU-Linux-x86/getPar.o build/Debug/GNU-Linux-x86/LogFile.o 
-L../My_CPP_Libraries/UtilsLib/dist/Release/GNU-Linux-x86 -lmysqlclient ../My_CPP_Libraries/UtilsLib/dist/Debug/GNU-Linux-x86/libutilslib.a 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libmysqlclient.so when searching for -lmysqlclient
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libmysqlclient.a when searching for -lmysqlclient
/usr/bin/ld: skipping incompatible /usr/lib/libmysqlclient.so when searching for -lmysqlclient
/usr/bin/ld: skipping incompatible /usr/lib/libmysqlclient.a when searching for -lmysqlclient
/usr/bin/ld: cannot find -lmysqlclient


Что в таких ситуациях делают? 

Повторюсь, что к проект использует 2 библиотеки - одну из amd64 репозитория Debian, а вторую устанавливал вручную.

Как временное решение - развернул виртуальную машину с Debian-i386, компилирую сейчас под ней. Насколько такое решение правильное и можно ли обойтись без VM?




Это сообщение отредактировал(а) Zerstroer - 9.1.2012, 12:48


--------------------
In silico
PM MAIL ICQ   Вверх
boostcoder
Дата 9.1.2012, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



libmysqlclient нужен для целевой архитектуры.
PM WWW   Вверх
Zerstroer
Дата 9.1.2012, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Цитата(boostcoder @  9.1.2012,  12:29 Найти цитируемый пост)
libmysqlclient нужен для целевой архитектуры. 

Я его скачал ручками с зеркала. libmysqlclient-dev_5.1.49-3_i386.deb
Вопрос как его теперь правильно поставить, из родного amd64 репозитория пакет в системе уже установлен?
dpkg -i --force-architecture?


--------------------
In silico
PM MAIL ICQ   Вверх
Absinthe
Дата 9.1.2012, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: нет
Всего: 11



Цитата

Вопрос как его теперь правильно поставить, из родного amd64 репозитория пакет в системе уже установлен?
 А почему бы не подойти дедовским способом и не распаковать руками?
PM MAIL   Вверх
Zerstroer
Дата 9.1.2012, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Цитата(Absinthe @  9.1.2012,  13:38 Найти цитируемый пост)
 А почему бы не подойти дедовским способом и не распаковать руками? 

У меня один дедушка шахтер, а другой киномеханик, не умею я...

Добавлено через 1 минуту и 40 секунд
Я имею ввиду, даже если я его распакую, куда всё из него рассовывать? И какие нюансы еще нужно будет учесть?


--------------------
In silico
PM MAIL ICQ   Вверх
boostcoder
Дата 9.1.2012, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



Цитата(Zerstroer @  9.1.2012,  15:43 Найти цитируемый пост)
если я его распакую, куда всё из него рассовывать?

куда угодно. для того чтоб что-то с ним слинковать, нет надобности в его корректной установке.
но есть другой момент: тебе нужны и его зависимости. в итоге может получиться не малое кол-во пакетов. так что проще, установить виртуалку ;)
PM WWW   Вверх
Zerstroer
Дата 10.1.2012, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Цитата(boostcoder @  9.1.2012,  14:05 Найти цитируемый пост)
так что проще, установить виртуалку 

А виртуалка - это вообще адекватное решение?



--------------------
In silico
PM MAIL ICQ   Вверх
null56
Дата 10.1.2012, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 4
Всего: 12



gcc64 умеет собирать 32 битные, если необходимые либы для сборки тоже присутствуют
man gcc
Цитата

-m32-bit


Цитата

имею ввиду, даже если я его распакую, куда всё из него рассовывать? И какие нюансы еще нужно будет учесть? 

вообще если там пристуствует configure, то у configure наверняка есть опция install или setup

в папке с исходниками
./configure --help


Это сообщение отредактировал(а) null56 - 10.1.2012, 13:39
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0739 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.