Russian Qt Forum
Ноябрь 23, 2024, 08:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64  (Прочитано 10547 раз)
_Konstantin_
Гость
« : Май 09, 2015, 06:52 »

В силу объективных причин пришлось перейти на Linux, но столкнулся с проблемой установки окружения Qt. Нужна установка Qt на Linux Mint для кросс-компиляции проектов для Linux 32/64 Windows 32/64. ОС Linux Mint 17.1 x64. Делаю все как описано http://habrahabr.ru/post/198142/ но на этапе сборки для Windows 64 столкнулся с тем, что ./configure ругается на CROSS_COMPILE=x86_64-w64-mingw32-, пишет:
Цитировать
CROSS_COMPILE=x86_64-w64-mingw32-: unknown argument
пробовал писать и относительный путь CROSS_COMPILE=/usr/x86_64-w64-mingw32- но результат тот же. Помогите разобраться.
Записан
Dovgon
Гость
« Ответ #1 : Май 09, 2015, 07:37 »

Если собираешься пользоваться linux поставь openSuse.
Записан
_Konstantin_
Гость
« Ответ #2 : Май 09, 2015, 07:53 »

Я вынужден работать на Linux Mint 17.1
Кстати вопрос, а чем OpenSUSE лучше?
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #3 : Май 09, 2015, 08:23 »

у меня ./configure выпадает в сегментацию при попытке собрать 64 qt под винду. решения так и не нашёл.
Записан
_Konstantin_
Гость
« Ответ #4 : Май 09, 2015, 08:29 »

если у человека который писал статью указанную мной все получилось значит я что то делаю не так и переходить на OpenSUSE из-за этого смысла не вижу Улыбающийся
думаю что данную проблему нужно решать, но я пока не знаю как т.к. в Linux плохо ориентируюсь
Записан
_Konstantin_
Гость
« Ответ #5 : Май 09, 2015, 19:12 »

В общем я так и не поборол эту ошибку, пришлось руками вписать в qmake.conf данную переменную, а в ./configure исключить инициализацию данным занчением x86_64-w64-mingw32- переменную CROSS_COMPILE
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #6 : Май 10, 2015, 00:00 »

Кстати вопрос, а чем OpenSUSE лучше?
Я бы не стал прислушиваться чьего-то мнения в вопросе выбора дистрибутива. Имхо, каждому своё. Минт - довольно не плохой выбор для знакомства с линукс.
А вы не пробовали заменить x86_64-w64-mingw32- на x86_64-w64-mingw32? Уж какой-то подозрительный этот дефис на конце.
Записан
_Konstantin_
Гость
« Ответ #7 : Май 10, 2015, 04:27 »

С именем переменной все в порядке, это ведь подстановка в файле qmake.conf (во вложении посмотрите), собственно вопрос то и был, почему ему не нравится в качестве аргумента в строке ./configure, а если явно прописать в .conf файле то все в порядке.
Записан
_Konstantin_
Гость
« Ответ #8 : Май 10, 2015, 15:36 »

Собираю все так же Qt-4.8.6 на Linux Mint 17.1 пока для Windows х64, но уже по другому мануалу http://www.linuxfromscratch.org/blfs/view/svn/x/qt4.html
В результате не могу собрать из-за ошибок при конфигурировании. Архив с лог файлом выполнения конфигуратора, qmake.conf из ~/qt-everywhere-opensource-src-4.8.6/mkspecs/win64-x-g++/ прилагаю. Команды конфигурирования видны в лог файле в самом начале.
Судя по выводу в лог ошибок, якобы не хватает библиотек хотя они установлены в системе. К примеру самая первая ошибка:
Цитировать
ipc_sysv auto-detection... ()
compiling ipc.cpp
ipc.cpp:43:21: fatal error: sys/ipc.h: Нет такого файла или каталога
 #include <sys/ipc.h>
этот хедер присутствует в библиотеке libc6-dev и она у меня установлена, вот вывод:
Цитировать
konstantin@kisa ~ $ dpkg -L libc6-dev | grep "/sys/" | sort
/usr/include/x86_64-linux-gnu/sys/acct.h
/usr/include/x86_64-linux-gnu/sys/auxv.h
/usr/include/x86_64-linux-gnu/sys/bitypes.h
/usr/include/x86_64-linux-gnu/sys/cdefs.h
/usr/include/x86_64-linux-gnu/sys/debugreg.h
/usr/include/x86_64-linux-gnu/sys/dir.h
/usr/include/x86_64-linux-gnu/sys/elf.h
/usr/include/x86_64-linux-gnu/sys/epoll.h
/usr/include/x86_64-linux-gnu/sys/errno.h
/usr/include/x86_64-linux-gnu/sys/eventfd.h
/usr/include/x86_64-linux-gnu/sys/fanotify.h
/usr/include/x86_64-linux-gnu/sys/fcntl.h
/usr/include/x86_64-linux-gnu/sys/file.h
/usr/include/x86_64-linux-gnu/sys/fsuid.h
/usr/include/x86_64-linux-gnu/sys/gmon.h
/usr/include/x86_64-linux-gnu/sys/gmon_out.h
/usr/include/x86_64-linux-gnu/sys/inotify.h
/usr/include/x86_64-linux-gnu/sys/ioctl.h
/usr/include/x86_64-linux-gnu/sys/io.h
/usr/include/x86_64-linux-gnu/sys/ipc.h
/usr/include/x86_64-linux-gnu/sys/kdaemon.h
/usr/include/x86_64-linux-gnu/sys/kd.h
/usr/include/x86_64-linux-gnu/sys/klog.h
/usr/include/x86_64-linux-gnu/sys/mman.h
/usr/include/x86_64-linux-gnu/sys/mount.h
/usr/include/x86_64-linux-gnu/sys/msg.h
/usr/include/x86_64-linux-gnu/sys/mtio.h
/usr/include/x86_64-linux-gnu/sys/param.h
/usr/include/x86_64-linux-gnu/sys/pci.h
/usr/include/x86_64-linux-gnu/sys/perm.h
/usr/include/x86_64-linux-gnu/sys/personality.h
/usr/include/x86_64-linux-gnu/sys/poll.h
/usr/include/x86_64-linux-gnu/sys/prctl.h
/usr/include/x86_64-linux-gnu/sys/procfs.h
/usr/include/x86_64-linux-gnu/sys/profil.h
/usr/include/x86_64-linux-gnu/sys/ptrace.h
/usr/include/x86_64-linux-gnu/sys/queue.h
/usr/include/x86_64-linux-gnu/sys/quota.h
/usr/include/x86_64-linux-gnu/sys/raw.h
/usr/include/x86_64-linux-gnu/sys/reboot.h
/usr/include/x86_64-linux-gnu/sys/reg.h
/usr/include/x86_64-linux-gnu/sys/resource.h
/usr/include/x86_64-linux-gnu/sys/select.h
/usr/include/x86_64-linux-gnu/sys/sem.h
/usr/include/x86_64-linux-gnu/sys/sendfile.h
/usr/include/x86_64-linux-gnu/sys/shm.h
/usr/include/x86_64-linux-gnu/sys/signalfd.h
/usr/include/x86_64-linux-gnu/sys/signal.h
/usr/include/x86_64-linux-gnu/sys/socket.h
/usr/include/x86_64-linux-gnu/sys/socketvar.h
/usr/include/x86_64-linux-gnu/sys/soundcard.h
/usr/include/x86_64-linux-gnu/sys/statfs.h
/usr/include/x86_64-linux-gnu/sys/stat.h
/usr/include/x86_64-linux-gnu/sys/statvfs.h
/usr/include/x86_64-linux-gnu/sys/stropts.h
/usr/include/x86_64-linux-gnu/sys/swap.h
/usr/include/x86_64-linux-gnu/sys/syscall.h
/usr/include/x86_64-linux-gnu/sys/sysctl.h
/usr/include/x86_64-linux-gnu/sys/sysinfo.h
/usr/include/x86_64-linux-gnu/sys/syslog.h
/usr/include/x86_64-linux-gnu/sys/sysmacros.h
/usr/include/x86_64-linux-gnu/sys/termios.h
/usr/include/x86_64-linux-gnu/sys/timeb.h
/usr/include/x86_64-linux-gnu/sys/time.h
/usr/include/x86_64-linux-gnu/sys/timerfd.h
/usr/include/x86_64-linux-gnu/sys/times.h
/usr/include/x86_64-linux-gnu/sys/timex.h
/usr/include/x86_64-linux-gnu/sys/ttychars.h
/usr/include/x86_64-linux-gnu/sys/ttydefaults.h
/usr/include/x86_64-linux-gnu/sys/types.h
/usr/include/x86_64-linux-gnu/sys/ucontext.h
/usr/include/x86_64-linux-gnu/sys/uio.h
/usr/include/x86_64-linux-gnu/sys/ultrasound.h
/usr/include/x86_64-linux-gnu/sys/un.h
/usr/include/x86_64-linux-gnu/sys/unistd.h
/usr/include/x86_64-linux-gnu/sys/user.h
/usr/include/x86_64-linux-gnu/sys/ustat.h
/usr/include/x86_64-linux-gnu/sys/utsname.h
/usr/include/x86_64-linux-gnu/sys/vfs.h
/usr/include/x86_64-linux-gnu/sys/vlimit.h
/usr/include/x86_64-linux-gnu/sys/vm86.h
/usr/include/x86_64-linux-gnu/sys/vt.h
/usr/include/x86_64-linux-gnu/sys/vtimes.h
/usr/include/x86_64-linux-gnu/sys/wait.h
/usr/include/x86_64-linux-gnu/sys/xattr.h
уже второй день убил на это.
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #9 : Май 12, 2015, 10:31 »

а нужна ли сборка win64 ? win32 запукается везде, чего ради 64 бита ?
Записан
_Konstantin_
Гость
« Ответ #10 : Май 12, 2015, 13:15 »

ПО не принимает 32х битные dll т.к. оно теперь 64х битное и ему нужно соответствующей битности dll...
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #11 : Май 13, 2015, 13:30 »

ПО не принимает 32х битные dll т.к. оно теперь 64х битное и ему нужно соответствующей битности dll...

как не принимает, если есть 32х сборка ?

почему используется qt4, а не qt5 ?
Записан
_Konstantin_
Гость
« Ответ #12 : Май 13, 2015, 14:27 »

У 64х битных программ вызов функций из dll происходит несколько иначе Улыбающийся А Qt4 использую потому как у меня есть книжка по ней.
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #13 : Май 14, 2015, 08:31 »

У 64х битных программ вызов функций из dll происходит несколько иначе Улыбающийся А Qt4 использую потому как у меня есть книжка по ней.

1. dll чья, есть исходники ? моя мысль о том, что если веских причин использовать 64 бита нет, то и не нужно собирать проект под 64 бита - лишнее проблемы в поддержке.

2. qt4 "устарело", никому не интересно будет разбираться почему оно не собирается под 64х. написанное в книге можно успешно использовать в qt5. в qt5 уже есть сборки под 64 бита.
Записан
_Konstantin_
Гость
« Ответ #14 : Май 14, 2015, 09:36 »

Исходники .dll есть, и веские причины есть, уже писал об этом - ПО для которого писалась .dll перешло на х64 и теперь из-за .dll выгружается и перестает работать, разработчики ПО так же написали, что теперь можно использовать .dll только х64, вот и озаботился.
А насчет устаревания Qt4 вы не правы, она не устарела и многие ее считают стабильнее Qt5, хотя наверное вы правы в том, что все равно уже пора переходить на Qt5. Вот только походу придется лопатить весь код написанный ранее на Qt4.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 23.