Название: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: _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- но результат тот же. Помогите разобраться.Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: Dovgon от Май 09, 2015, 07:37 Если собираешься пользоваться linux поставь openSuse.
Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: _Konstantin_ от Май 09, 2015, 07:53 Я вынужден работать на Linux Mint 17.1
Кстати вопрос, а чем OpenSUSE лучше? Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: Fregloin от Май 09, 2015, 08:23 у меня ./configure выпадает в сегментацию при попытке собрать 64 qt под винду. решения так и не нашёл.
Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: _Konstantin_ от Май 09, 2015, 08:29 если у человека который писал статью указанную мной все получилось значит я что то делаю не так и переходить на OpenSUSE из-за этого смысла не вижу :)
думаю что данную проблему нужно решать, но я пока не знаю как т.к. в Linux плохо ориентируюсь Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: _Konstantin_ от Май 09, 2015, 19:12 В общем я так и не поборол эту ошибку, пришлось руками вписать в qmake.conf данную переменную, а в ./configure исключить инициализацию данным занчением x86_64-w64-mingw32- переменную CROSS_COMPILE
Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: __Heaven__ от Май 10, 2015, 00:00 Кстати вопрос, а чем OpenSUSE лучше? Я бы не стал прислушиваться чьего-то мнения в вопросе выбора дистрибутива. Имхо, каждому своё. Минт - довольно не плохой выбор для знакомства с линукс.А вы не пробовали заменить x86_64-w64-mingw32- на x86_64-w64-mingw32? Уж какой-то подозрительный этот дефис на конце. Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: _Konstantin_ от Май 10, 2015, 04:27 С именем переменной все в порядке, это ведь подстановка в файле qmake.conf (во вложении посмотрите), собственно вопрос то и был, почему ему не нравится в качестве аргумента в строке ./configure, а если явно прописать в .conf файле то все в порядке.
Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: _Konstantin_ от Май 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... () этот хедер присутствует в библиотеке libc6-dev и она у меня установлена, вот вывод:compiling ipc.cpp ipc.cpp:43:21: fatal error: sys/ipc.h: Нет такого файла или каталога #include <sys/ipc.h> Цитировать 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 Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: qate от Май 12, 2015, 10:31 а нужна ли сборка win64 ? win32 запукается везде, чего ради 64 бита ?
Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: _Konstantin_ от Май 12, 2015, 13:15 ПО не принимает 32х битные dll т.к. оно теперь 64х битное и ему нужно соответствующей битности dll...
Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: qate от Май 13, 2015, 13:30 ПО не принимает 32х битные dll т.к. оно теперь 64х битное и ему нужно соответствующей битности dll... как не принимает, если есть 32х сборка ? почему используется qt4, а не qt5 ? Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: _Konstantin_ от Май 13, 2015, 14:27 У 64х битных программ вызов функций из dll происходит несколько иначе :) А Qt4 использую потому как у меня есть книжка по ней.
Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: qate от Май 14, 2015, 08:31 У 64х битных программ вызов функций из dll происходит несколько иначе :) А Qt4 использую потому как у меня есть книжка по ней. 1. dll чья, есть исходники ? моя мысль о том, что если веских причин использовать 64 бита нет, то и не нужно собирать проект под 64 бита - лишнее проблемы в поддержке. 2. qt4 "устарело", никому не интересно будет разбираться почему оно не собирается под 64х. написанное в книге можно успешно использовать в qt5. в qt5 уже есть сборки под 64 бита. Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: _Konstantin_ от Май 14, 2015, 09:36 Исходники .dll есть, и веские причины есть, уже писал об этом - ПО для которого писалась .dll перешло на х64 и теперь из-за .dll выгружается и перестает работать, разработчики ПО так же написали, что теперь можно использовать .dll только х64, вот и озаботился.
А насчет устаревания Qt4 вы не правы, она не устарела и многие ее считают стабильнее Qt5, хотя наверное вы правы в том, что все равно уже пора переходить на Qt5. Вот только походу придется лопатить весь код написанный ранее на Qt4. Название: Re: Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64 Отправлено: Fregloin от Май 25, 2015, 10:51 Что то я не нашёл х64 сборки Qt5 под винду, может плохо искал?
Кстати у меня получилось собирать виндовые экзешники под убунтой. Но возник нюанс при использовании библиотеки перехвата исключений, впрочем тоже решилось тупым копированием. |