Перейти к содержимому

Как собрать приложение из исходников с github

  • автор:

Как собрать apk для android из сорцов с github?

Есть простой способ для людей, не умеющих в програминг?
Вот скачал я с github zip-архив, распаковал, внутри обнаружились файлики Android.mk, CleanSpec.mk и кучка директорий с непонятными файлами внутри.
Какие пакеты установить в систему и что запустить, чтобы на выходе получился apk для девайса с процессором MediaTek MT6795?

самый простой способ — поставить android studio + android sdk, способ посложней — поставить android sdk и сделать свой кастомный билд.

Судя по мейк файлам это нужен ndk, а не SDK. Но лучше если автор даст линк на проект.

Дай линк на проект.

Судя по Android.mk, смотри в сторону ndk-build. Если вообще не нужно трогвть жабку и в целом лениво собирать заново, то поставь apktool, декомпиль apk, подмени получившиеся на выходе от ndk-build сошки и компиль обратно. Не забудь подписать.

Если же надо, то ищи жабовый проект и собирай его антом(или градлом, если градл головного мозга).

Скачивание и использование инструментов с GitHub для начинающих

Наверное, каждый пробовал скачивать утилиты с GitHub по видео-гайдам из ютуба «Как хакнуть пентагон за секунду« или »бесплатный телеграм скрапер участников». Эти громкие названия действительно работают и ничего не понимающие люди идут скачивать утилиту с GitHub, потому что с её помощью можно взломать подругу и разведать её интимки.

Но нас это не интересует. В гите находится огромное количество инструментов для OSINT, аналогов которым не найти. Сегодня мы глубоко в GitHub лезть не будем, а лишь узнаем, как же использовать этот неиссякаемый инструментарий.

*Внимание, переконцентрация слова GitHub

GitHub — крупнейший веб-сервис для размещения IT-проектов и их совместной разработки. На нем хостятся ваши проекты, утилиты, фотки и что угодно.

На GitHub свыше 100000+ утилит(небольших программ) и каждая по-своему уникальна, отличаются они способом установки и языком программирования, на котором написана сама утилита и, если в зависимости от языка, эта установка меняется кардинально и поэтому приходится разбираться с документацией по установке скрипта(набор строк кода), смотреть гайды по установке или в последнюю очередь — обращаться к людям, знающим язык программирования, на котором написан код.

Так как Python — самый популярный язык и на нем написано много утилит, то сегодня мы рассмотрим установку утилиты на python — https://github. com/Red-company/RDDoS_Tool

На страничке мы видим: разбор и объяснение про репозиторий(любой проект, размещенный на GitHub); это мы пропускаем и идем к пункту Installing — здесь рассказано, на каких ОС утилита работает (Windows/Linux/MacOs/Termux) .

Первое поле — это обновление пакетов(комплектующих системы) с помощью конкретного пакетного менеджера в ОС линукс

Второе поле — установка GIT

Третье поле — установка утилиты с помощью GIT, также можно и с помощью веб-интерфейса GitHub скачать

Четвертое поле — это переход в директорию(папка в файловой системе)

Пятое поле — это запуск .sh скрипта с помощью Bash

Шестое поле — это запуск основного скрипта с помощью python(язык на котором и написана сама утилита)

Некоторые пункты будут пропущены, потому что не соответствуют структуре ОС

Установка с помощью Windows

Второе, установка GIT, читаем мануал

Третье, скачивание утилиты с GitHub, нажимаем комбинацию клавиш > Win+R пишем > powershell делаем > запустить; переходим на рабочий стол cd «c:\\Users\ваш юзернейм\Desktop\» пишем заветную команду:

Также это можно сделать с помощью веб-интерфейса, на скрине сверху нажимаем Download ZIP и перемещаем из папки Загрузок на рабочий стол

Четвертое, переходим в директорию именно с помощью терминала, но сначала убедитесь, в какой директории вы находитесь и не находитесь ли вы в корневой директории. Для этого используем команду :

Пятое, запускаем установочный скрипт bash setup. sh, но на виндовс он работать не будет, на странице написано, что нужно сделать так, значит делаем вручную как сказано

А также устанавливаем python, потому что это будет нужно для исполнения основного файла ТЫК

Шестое, запускаем сам python скрипт

Установка с помощью Linux

Если у вас пакетный менеджер apt(проверьте методом тыка), то смело делаем все как в установке показано:

Если у вас другой пакетный менеджер, то следуем инструкции дальше!

  • 1. Это обновление пакетов, вам нужно посмотреть как обновлять пакеты на вашем линукс-дистрибутиве(разновидность ОС Linux) и обновить
  • 2. Установка GIT и опять же посмотрите, как установить GIT на вашем дистрибутиве линукс
  • 3.Установка утилиты, тут по аналогии с виндовс действуем:

Переходим в директорию рабочего стола cd $HOME/Desktop/ и устанавливаем:

4. Переход в директорию

5. Исполнение Bash-скрипта, если у вас не пакетный менеджер APT, то устанавливаем пакеты вручную. А знаю я это, потому что нужно посмотреть в код setup. sh и посмотреть, как исполняется этот скрипт и что делает, примерно можно понять, что он делает и для какого ПМ(наиболее популярная утилита управления пакетами для Linux систем) он работает

С помощью вашего ПМ установите python:

6. Запуск скрипта

Как узнать, какой у меня дистрибутив линукс? ТЫК

Установка с помощью Android

Чтобы исполнять код, нам нужно скачать Termux и прочитать, что это такое на вики

Делаем все по аналогии с оригинальной установкой, а также с линуксом, попутно устанавливая git, python, pip, пакеты pip

Установка с помощью MacOS

MacOS в первую очередь основан на Unix, а это значит, что почти все команды у него совпадают с Linux-установкой и поэтому делаем все также, только вместо apt-get используем пакетный менеджер MacOS > brew

Не забываем про установку git, python, pip, пакеты pip, которые по умолчанию должны быть на MacOS, но лучше обезопаситься:

Потренируйтесь

В довесок оставлю здесь небольшую подборку инструментов с GitHub, в установке которых вы можете опробовать свои силы:

Больше можно найти на нашем канале :

Сегодня мы разобрали основные способы установки утилит из GitHub, теперь вы можете смело использовать репозитории, безостановочно публикующиеся в OSINT-каналах.

Как собрать приложение из исходников с github

Благодаря менеджеру пакетов winget, уже входящему в актуальные сборки масдайки, теперь в Windows 10 можно инсталлировать приложения одной простой консольной командой (см. также доку от Микрософта).

Но мы рассмотрим сейчас ситуацию, когда у нас есть только ссылка на исходники проекта, скажем, на Гитхабе (возьмём для примера библиотеку для простых чисел primesieve) и нужно каким-то образом скомпилировать внешний проект в своей Studio, чтобы воспользоваться его возможностями в своём приложении.

В противном случае, конечно же, нестандартный include вроде этого, который вы нашли в коде-образце

работать не будет ни за что.

Первым делом скачаем все исходники внешнего проекта «как есть» в архиве .zip, для этого у нас на гитхабе есть кнопка «Download ZIP»:

Как загрузить проект с github в архиве .zip
Как загрузить проект с github в архиве .zip

Развернём проект, не создавая новой папки, если у вашего архиватора нет такого же пункта меню, просто сотрите предлагаемое архиватором имя новой папки, потому что папка уже есть в архиве:

Извлечь внешний проект из архива, не создавая новой папки
Извлечь внешний проект из архива, не создавая новой папки

Если покопаться в файле readme.md проекта, как правило, можно найти инструкцию по установке (Build instructions) и даже «Detailed build instructions», где говорится, в числе прочего, и о компиляции проекта под Microsoft Visual C++:

Команды cmake для компиляции проекта со страницы документации
Команды cmake для компиляции проекта со страницы документации

Откроем свой «некомпилируемый» без нужной библиотеки проект в Studio (я использую актуальную сборку версии 2019) и обратимся к команде меню Вид — Терминал. Выберем инструмент «Командная строка разработчика» (по умолчанию в новых сборках теперь выбран PowerShell, впрочем, если в документации приведены команды PowerShell, то применяйте их).

У Микрософта инструмент описан вот здесь.

Командная строка разработчика в Studio
Командная строка разработчика в Studio

В командной строке пишем команды из документации, но сначала, конечно, нужно перейти в ту папку, где у вас развёрнут скачанный проект. Мне понадобилось ввести в консоли следующее, завершая каждую команду нажатием Enter:

— теперь я в нужной папке, так как развернул свой архив в папку d:\temp

Далее как написано:

Можно просто копировать команды со страницы документации, в окне консоли вверху есть стандартная кнопочка «Вставить». А вот точка в записи команд имеет значение, это ссылка на текущую папку!

Ну и, конечно, для другой версии Studio будет другое указание компилятора, узнать своё можно командой

Нужный генератор будет помечен в списке «звёздочкой».

Теперь проект можно открывать в Studio и работать с ним, все нужные файлы есть в папке d:\temp\primesieve-master

Но мы хотим подключить всё, что нужно, к своему имеющемуся проекту, а не пытаться модифицировать чужую библиотеку.

  • Меню Проект — Свойства, слева выбираем Свойства конфигурации, C/C++, Общие, раскрываем поле «Дополнительные каталоги включаемых файлов», говорим «Изменить» и показываем на папку D:\Temp\primesieve-master\include . В вашем проекте, как правило, тоже будет вложенная папка include .
  • В том же окне выбираем Компоновщик — Общие — Дополнительные каталоги библиотек, «Изменить» и добавляем путь D:\Temp\primesieve-master\Release . Этого может оказаться мало, у вашего проекта и внешнего должны быть выбраны одинаковые конфигурации решения. Так как я выбрал Release для внешнего проекта, то и в своём проекте в списке «Конфигурации решения» (на стандартной панели инструментов) указал Release и платформу x64. Можно было работать и с Debug, но тогда и внешний проект компилируем как Debug и потом выбираем путь D:\Temp\primesieve-master\Debug .
  • В списке C/C++ — Создание кода — Библиотека времени выполнения выбрал Многопоточный DLL (/MD), иначе будет «LNK2038: обнаружено несоответствие для ‘RuntimeLibrary’: значение ‘MT_StaticRelease’ не соответствует значению ‘MD_DynamicRelease’ в file.obj».
  • Сам файл библиотеки, как правило имеющий тип .lib , тоже нужно прописать. Всё в том же окне свойства проекта выбираем список Компоновщик — Ввод, раскрываем список «Дополнительные зависимости», жмём «Изменить» и указываем в поле ввода имя файла библиотеки primesieve.lib
  • На всякий случай, проверяем, что у нас в списке Компоновщик — Система — Подсистема, у меня там просто Консоль (/SUBSYSTEM:CONSOLE) , для других типов проектов может понадобиться изменение и этой настройки.

После этого у меня всё заработало.

Ну а конкретная задача, на которой я проверял библиотеку — печать самых длинных цепочек последовательных простых чисел, в которых разница между соседними значениями строго возрастает или строго убывает, предел счёта равен 1000000, вот сама программа:

Ответы вышли такие:

За счёт хорошо оптимизированного кода библиотеки считается всё мгновенно.

Собрать исходники системы Git взятые с GitHUB

Не понимаю как вообще собираются чужие исходники и как их редактировать (разобраться что и откуда начинается и к чему относится). Там куча всего непонятного, каких-то папок, файлов с непонятными расширениями. Как в этом всём разобраться? Существует же множество сред разработки, версий компиляторов, библиотек и прочего. У меня для C++ установлена IDE Eclipse например.

Скачал исходники отсюда GIT, хочу собрать и установить у себя систему Git, но как это собрать не понимаю. Прочитал, что для установки из исходников нужны еще библиотеки curl, zlib, openssl, expat и libiconv. Ну и что? С чего вообще начать?

Git синхронизация с github
Здраствуйте. Немного запутался в понятия git, обьясните пжл. Есть github, главная ветка master, но.

Установка работы GitHub и git на Windows 7 ?
Можно где то найти по шагавшую инструкцию ПОДРОБНУЮ по установке и работе программы git? И как.

Как обновлять программы c Github(git pull)?
Собираюсь установить у себя медицинские экспертные системы. Если авторы что то поправят в.

Сборка программ из исходников в Linux

Пользователям Linux необходимо хотя бы приблизительно знать как происходит сборка программ из исходников. Так как вы можете столкнуться стем, что вашей программы может и не быть скомпилированной под ваш дистрибутив. Сама сборка программ не сложна, и обычно описана в файле README или INSTALL, который идет вместе с пакетами для сборки. Так что, будьте внимательны. И так, сборку из исходников мы будем разбирать на примере программы GParted. Но, для начала давайте установим необходимые утилиты – интерпретатор и компилятор, для того, что бы можно было собирать программы. Для установки необходимых утилит вводим команду:

Debian/Ubuntu

Arch/Manjaro

Сборка программ c Github

И начнем мы с GParted, сборку или как еще называется данный процесс – компиляцию мы будем выполнять в Ubuntu 20.04. Вы можете спросить почему именно в Ubuntu, отвечу, для Arch Linux и подобных есть AUR. Да и со сборкой программ в Arch мы разберемся чуть позже. Там можно найти практически все программы, которые существуют для Linux. Для начала нужно скачать исходники программы, для этого переходим на сайт, скачиваем, а затем распаковываем архив. Так же можно выполнить команду:

Затем переходим в папку:

Теперь заглянем в файл README и посмотрим его внимательно. Если приглядеться, то можно увидеть какие зависимости необходимы доустановить:

программ в Linux 3

Обратите внимания, что GPArted хорошо документированная, и для установки под каждый дистрибутив имеется инструкция с дополнительными зависимостями. Устанавливаем зависимости и выполняем команду для того, что бы у вас сформировался установочный файл:

программ в Linux 1

Если проблема с зависимостями у вас останется, то вы увидите об этом вывод:

программ в Linux 2

После того, как вы установите все необходимые зависимости, запускаете снова “autogen.sh”. В итоге он вам скажет что можно приступать к дальнейшим действиям:

программ в Linux 4

Далее запускаем “make” и затем когда “make” выполнит свою работу, запускаем “sudo make install”. Обратите внимания, в некоторых инструкциях не упоминается о том, что нужно установку программы выполнять именно от “sudo”, а именно: “sudo make install”. Из за этого у вас могут возникнуть проблемы. И так продолжаем сборку программы вводим команды:

программ в Linux 5

Стоит отметить, что многие программы с открытым исходным кодом, можно найти на github. Там обычно самая последняя версия программы, по этому, если есть такая возможность, то лучше собирать программы с github.

После установки можно найти программу в меню установленных программ.

Сборка программ из архива

Распаковывать архив можно из терминала, а можно при помощи графического интерфейса, например программой Ark или Менеджер архивов. Тут все зависит от того, как вам удобней. Для того что бы распаковать архив в терминале, нужно выполнить определенную команду. На примере с GParted такой командой будет:

Примечание, tar является утилитой командной строки для распаковки архивов. И так, затем переходим в папку с распакованной программой и смотрим какие там имеются файлы. Тут как раз имеются README:

программ в Linux 8

Для наглядности я открою файл README в графической утилите Mousepad. Как вы можете заметить, в инструкции подробно прописано как устанавливать данную программу из исходников:

программ в Linux 3

Для того что бы собрать данную программу, достаточно выполнить команды, которые прописаны в инструкции. Так как мы уже распаковали данный архив, пропускаем это шаг. Если вы не знаете как перейти в терминале в директорию программы, поясню. А если знаете, то пропустите данный шаг. Для того что бы перейти в терминале в нужную директорию, используется команда “cd“. Например, у вас папка с программой находится по адресу “Загрузки – папка с программой”, выполняем команду:

После чего можно посмотреть что у нас имеется в данной директории введя команду “ls“, после чего снова вводим команду “cd” и переходим в нужную нам директорию. Например:

Теперь приступаем к сборке программы GParted. Для этого вводим команды которые написаны в файле README.

На этом этапе установки могут возникнуть проблемы с зависимостями. По этому их необходимо установить:

программ в Linux 9

После того как все необходимые зависимости были установлены, снова запускаем “./configure” и продолжаем компиляцию программы как описано выше. А именно, после запуска “./configure” запускаем “make”, а затем “sudo make install”.

Ошибки при сборке программы

Возможно, при компилировании у вас могут возникнуть проблемы с зависимостями. Для этого надо будет устанавливать необходимые пакеты. Обычно если у вас не хватает зависимостей, вы увидите во время выполнения команды ./configure ошибки. Если же вы не знаете какой зависимости не хватает, то тут выручит поисковик.

программ в Linux 9 1

После того как вы установите необходимые зависимости, снова необходимо запустить ./configure. А может быть и так, что у вас не будет файла ./configure, попробуйте запустить другие скрипты:

Если таких скриптов вы не смогли найти, то можно выполнить последовательно следующие команды:

В случае с дистрибутивами Arch/Manjaro необходимые пакеты вы можете подгрузить используя “Менеджер программ”, Предварительно не забыв подключить репозиторий AUR:

программ в Linux 11

Пример необходимых зависимостей при установки в Manjaro программы Blender. Компиляция производилась с использованием файла PKGBUILD:

программ в Linux 12

Удаление программ

Если же вы захотите в будущем удалить GParted, или какую то иную программу, оставьте папку которую скачивали. Так как только в ней есть инструкция куда устанавливались те или иные пакеты. Обычно, в файле README написано как удалять установленные программы. В случае с GParted достаточно перейти в каталог с исходниками и выполнить команду:

программ в Linux 7

Сборка в Arch/Manjaro (Arch Build System – ABS)

В дистрибутивах Arch и Arch подобных есть несколько способов устанавливать программное обеспечение, собственно, как и во многих других дистрибутивах. Но, в Arch имеется AUR, это пользовательский репозиторий, где лежат программы, которые не вошли в официальные репозитории. А так же существует способ собрать программу из исходников и вот тут вы можете столкнуться с тем, что вам попадется файл “PKGBUILD”. PKGBUILD это грубо говоря скрипт, который содержит инструкцию по скачиванию необходимых пакетов. Так же вместе с PKGBUILD могут быть и другие файлы, например “blender.desktop”. Вы можете открыть PKGBUILD и изменить необходимые параметры, но, это только при условии что вы знаете что делаете. Предположительно, вы уже перешли в каталог с исходниками программы, если же нет, сделать это можно командой в терминале “cd и путь к директории”. Для сборки пакета выполняем команду:

Опишу опции которые тут применяются, опция -s произвести проверку и установку зависимостей, а опция i установку самого пакета:

программ в Linux 10

Сама сборка програм из исходников может занять значительное время, в зависимости от вашего компьютера.

Заключение

Может случится и такое, что необходимые зависимости при компиляции программ вы попросту не найдете в официальных репозиториях. Для этого можно воспользоваться поиском, после чего найдя их, устанавливаете. Можно посмотреть и на сайте pkgs.org. На этом сайте вы сможете найти разного рода пакеты для множества дистрибутивов Linux для решения проблем при сборке программ.

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
С уважением Cyber-X

Как собрать apk из исходников github?

androidovshchik

Есть приложение, которое включает камеру и хочет получить из нее фото.
Я не согласен с таким поведением и хочу дать приложению фото, сделанное заранее.

Нашел приложение Fake Camera — ссылка
Но ни из моих установленных приложение не запрашивает у меня выбор камеры, все приложения в телефоне запускают сразу дефолтную камеру.
Настройки — Приложения — Камера — дефолтное приложение — все пусто.

Я пошел качать Андроид студию и обнаружил там эмулятор андроида. Установит ManyCam, выставил картинку как источник камеры. Штатное приложение камеры на эмуляторе вроде бы видит картинку. Вродебы — это значит в режиме видеосъемки, когда переключаю в режим фото — выдает ошибку.

Но появилась и вторая проблема, я не могу установить нужное приложение из гугл плей, так как он ругается на несовместимый девайс «Google emulator ai что-то там».

Возник ряд вопросов:
1. Можно ли переименовать устройство в эмуляторе чтобы оно называлось как телефон, а не как эмулятор? Тогда, возможно, я смогу обойтись костылем через проброс картинки в драйвер вебмкамеры/

2. Возможно ли на нерутованом телефоне подменить приложение камеры?
3. Как можно на рутованном телефоне подменить камеру? в распоряжении имею Samsung Galaxy note 3.

Пока искал решение наткнулся на вот такую страничку с исходниками, но не понимаю это полезное или не в тему ссылка

Сборка Qt 5 из Git

В этой статье мы попытаемся дать некоторые объяснения касательно получения модулей Qt 5 из git и способы последующей их сборки. Не стесняйтесь обновлять эту статью, некоторые вещи изменяются во время разработки. Обсуждение проблем и их решения можно найти в ветке форума http://developer.qt.nokia.com/forums/viewthread/7018 (на английском).

Требования к системе

Вам очевидно потребуется git (>= 1.6.x) для получения пакетов.

Чтобы правильно сконфигурировать и собрать Qt 5 из исходных текстов, вам будут необходимы Perl (>=5.14) и Python (>=2.6.x), а так-же рабочий компилятор.

Linux/X11

Основы сборки

Ubuntu/Debian:

sudo apt-get install build-essential perl python git

Libxcb [xcb.freedesktop.org]: теперь является бэкэндом оконной системы по умолчанию для платформ на основе X11/Xorg, и поэтому вы должны установить libxcb и его сопроводительные пакеты. Qt5 может быть собран с любой libxcb версией, доступной в дистрибутивных пакетах (но вы можете дополнительно использовать v1.8 или выше, чтобы распараллелить поддержку рендеринга). src/plugins/platforms/xcb/README [code.qt.io]: перечисляет требуемые пакеты.

Libxcb

Ubuntu/Debian:

sudo apt-get install «^libxcb.*» libx11-xcb-dev libglu1-mesa-dev libxrender-dev

Fedora 16 и выше:

su — -c «yum install libxcb libxcb-devel xcb-util xcb-util-devel»

Fedora 17+ (xcb-util-renderutil в настоящее время доступно в обновлениях тестового репозитария, но пока работает не устойчиво):

su — -c «yum —enablerepo=updates-testing install libxcb libxcb-devel xcb-util xcb-util-devel xcb-util--devel»

Команда установки perl-version для Fedora

su — -c «yum install perl-version»

sudo pacman -S —needed libxcb xcb-proto xcb-util xcb-util-image xcb-util-wm

На Linux Chakra, кроме пакетов, упомянутых для ArchLinux, вы должны дополнительно установить пакет xcb-util-keysyms. Этот пакет доступен из CCR.

Mandriva/ROSA/Unity:

urpmi ‘pkgconfig(xcb)’ ‘pkgconfig(xcb-icccm)’ ‘pkgconfig(xcb-image)’ ‘pkgconfig(xcb-renderutil)’

Поддержка OpenGL

Для QtQuick2 настоятельно рекомендуется графический драйвер с собственной поддержкой OpenGL 2.0.

QtJsonDb

QtJsonDb зависит от libedit:

Ubuntu/Debian:

sudo apt-get install libedit-dev

Mandriva/ROSA/Unity:

Qt WebKit

Перед тем как компилировать webkit, вам потребуется установить следующие зависимые пакеты:

Ubuntu/Debian:

sudo apt-get install flex bison gperf libicu-dev libxslt-dev

su- -c «yum install gperf»

Mandriva/ROSA/Unity:

QtWayland зависимости

Для сборки модуля QtWayland, должны быть установлены библиотеки разработки Wayland [wayland.freedesktop.org]: (libxcomposite-dev и libwayland-dev).

Mac OS X

XCode и GIT должно быть достаточно.

Windows

Графические драйверы Windows

Для работы QML2 потребуются драйвера OpenGL (Nvidia, и т.д.), с поддержкой OpenGL 2.1 или выше для вашей видеокарты. По умолчанию, в Windows установлены драйвера с поддержкой OpenGL 1.1, которой будет недостаточно.

Альтернативой может служить, ANGLE-library [code.google.com], которая обеспечивает, Open GL ES 2.0, переводящая вызовы Open_GL в Direct X. Чтобы создать её, вы должны проделать следующее:

  1. установить Direct X SDK[msdn.microsoft.com]:
  2. получить и скомпилировать ANGLE (из SVN репозитория) как описано на этой странице[code.google.com]:
  3. Примечание: При сборке для 64х битных систем, деактивируйте опцию WarnAsError в каждом файле проекта (поскольку в противном случае предупреждения о целочисленных преобразованиях повредят сборку).
  4. При конфигурировании Qt передайте в параметры командной строки -opengl es2 -angle <path>
Поддерживаемые компиляторы на Windows
  • Windows SDK 7.1 с Visual Studio 2010 (предпочтительно). С 16.03.2012, при установке SDK потребуется установка пакетов в следующем порядке (см. readme.html предоставленный пакетом обновления):
  1. Установка Visual Studio 2010
  2. Установка Windows SDK 7.1
  3. Установка Visual Studio 2010 SP1
  4. Установка Visual C++ 2010 SP1 Обновление компилятора для Windows SDK 7.1
  • Windows SDK 7 с Visual Studio 2008
  • Windows Kit 8 with Visual Studio 2012[mingw.org] или TDM MinGW (64bit)[tdm-gcc.tdragon.net] с g++ версии 4.6 или выше (поддерживается не всеми модулями)
Среда сборки Windows

Мы рекомендуем создать файл командной строки, который предоставит среду сборки (см. Qt Creator README [code.qt.io]). В этой среде Python (например, Active Python 2.7 или старше) и Perl (например, Active State Perl 5.12 или старше) должны быть указаны в переменной среды PATH.
Скачать Perl: http://www.activestate.com/activeperl/downloads [activestate.com]
Скачать Python: http://www.python.org/download/releases/ [python.org]
Скачать Ruby:http://rubyinstaller.org/downloads/ [rubyinstaller.org]

Подсказка: Удостоверьтесь, что Perl описан в пути PATH перед git, так как последний имеет устаревшую версию (Perl 5. 8), и может прервать работу сценария.

Многопроцессорная сборка: При использовании nmake, может быть установлена переменная окружения CL (опция компилятора Visual Studio) set CL=/MP, давая компилятору команду использовать все ядра. Альтернативно, может использоваться инструмент jom [wiki.qt.io]. Однако, надо отметить, что у него есть проблемы с взаимозависимостями модуля, которые могут прервать сборку.

ICU на Windows

Qt 5 может использовать библиотеку ICU [site.icu-project.org] для UNICODE и поддержки глобализации. Это требуется для создания QtWebKit.

Во время компиляции include и lib папки установки ICU должны быть добавлены к INCLUDE и LIB переменным окружения после вызова сценария установки SDK Windows.

Во время выполнения ICU должны быть найдены DLL библиотеки. Это может быть достигнуто, с помощью копирования DLL в папку приложения или добавления папки bin установленного ICU в переменную окружения PATH.

Получение исходного кода

Сначала клонируйте верхний уровень git репозитария Qt 5:

или (если вы находитесь за межсетевым экраном можно использовать https протокол):

После прочтения README [code.qt.io] — файла, мы инициализируем репозиторий, используя сценарий init-repository, который клонирует различные подмодули Qt5. Соответствующие опции:

  • —module-subset=default,-qtwebengine: позволяет не загружать qtwebengine при передаче этой опции. Этот модуль довольно большой, компиляция занимает много времени и часто является источником ошибок. Таким образом, рекомендуется загружать и собирать его, только если намереваетесь использовать. В дальнейшем вы всегда можете повторно выполнить init-repository, чтобы добавить этот подмодуль.
  • —http: передайте эту опцию, если находитесь позади брандмауэра.

cd qt5 perl init-repository

Если вы планируете участвовать в развитии Qt, вы должны определить codereview-username свое имя пользователя, это необходимо для того чтобы отделить особенности вашей версии:

perl init-repository —codereview-username <Jira/Gerrit username>

Конфигурирование и сборка

Установите путь так, чтобы использовать инструменты Qt5, а не старые Qt4 и прочие, которые могут присутствовать в системе:

Для Linux/Mac OS X:

unset QTDIR export PATH=»$PWD/qtbase/bin:$PWD/qtrepotools/bin:$PATH»

Для Windows:

set QTDIR= set PATH=%CD%\qtbase\bin;%CD%\qtrepotools\bin;%PATH%

Теперь сконфигурируйте сборку (из директории верхнего уровня). Отключение тестов tests и примеров examples значительно ускорит компиляцию:

Для Linux/Mac OS X:

./configure -developer-build -opensource -nomake examples -nomake tests

Для Windows:

configure -developer-build -opensource -nomake examples -nomake tests

  • -developer-build — эта опция экспортирует больше символов, чем в традиционной сборке Qt, что позволяет большему количеству классов и функций быть протестированными модулем. Это также значение по умолчанию для сборки отладочной версии и установки двоичных файлов в текущем каталоге, и позволяет избежать потребности в ‘make install’.
  • -opensource — устанавливает лицензию LGPL 2.1.
  • -nomake examples и -nomake tests — исключение из сборки тестов и примеров. В дальнейшем вы всегда можете собрать их отдельно.

Подсказка 1: На Linux вы должны также передать параметр -no-gtkstyle. Это вызвано тем, что в ряде систем (по крайней мере, SUSE и Gentoo) pkg-config —cflags gtk+–2.0 фактически возвращает пути, которые включают в систему Qt4.x-include каталоги.

Подсказка 2: Можете добавить -confirm-license, чтобы принять лицензию и избавиться от вопроса о ее принятии.

Подсказка 3: На Windows вы не в состоянии осуществить сборку, если sh.exe находится в PATH (например, из-за установленного git или msys). Такая ошибка обозначается в сообщениях qt5-srcqtbasebinqmake.exe: command not found и подобных. В этом случае удостоверьтесь, что sh.exe не указан в переменной PATH. Вы должны будете вновь сконфигурировать сборку, в случае если вы его удалили.

Запускаем сборку, вызывая build perl сценарий:

Для Windows (MSVC):

Или просто соберите определенный модуль, например, declarative, и модули, от которых он зависит:

Подсказка 1: build сценарий используется для сборки всей конфигурации. Для сборки модулей из каталогов с исходниками, вы можете выполнять команду make. Это тоже работает. Подсказка 2: jom, низкоуровневая замена nmake на Windows, она пока не правильно работает для высокоуровневых сборок. Однако, вы можете использовать его для (пере-)создания отдельных подмодулей.

Сборка QtWebKit

Для сборки потребуются инструменты bison, flex и gperf.

cd qtwebkit export WEBKITOUTPUTDIR=»$PWD/WebKitBuild» perl Tools/Scripts/build-webkit —qt —qmake=»$PWD/../qtbase/bin/qmake» —install-libs=<install dir> —debug

На сайте WebKit.org [trac.webkit.org] вы найдете инструкции для создания WebKit на Windows. Кроме того потребуются библиотеки ICU [site.icu-project.org] и phtreads-win32 [sourceware.org]. После распаковки пакета (в папку c:), необходимо сделать следующее:

  • Добавить c:\phtreads\pthreads.2 в переменную окружения INCLUDE
  • Добавить c:\phtreads\Pre-built.2\lib\x64 или c:\phtreads\Pre-built.2\lib\x86 в переменную окружения LIB
  • Добавить c:\phtreads\Pre-built.2\dll\x64 или c:\phtreads\Pre-built.2\dllx86 в переменную окружения PATH

Инструменты bison, flex и gperf, которые требуются для сборки, предусмотрительно размещены в папке gnuwin32\bin.

set PATH=%PATH%;%CD%\gnuwin32\bin cd qtwebkit set WEBKITOUTPUTDIR=%CD%\WebKitBuild perl Tools\Scripts\build-webkit —qt —qmake=»%CD%\\..\\qtbase\\bin\\qmake.exe» —install-libs=<install dir>

Установка (Linux / Mac OS X)

Примечание: Установка будет необходима только если вы не использовали опции -developer-build или -prefix «%PWD%/qtbase». В противном случае вы можете просто пользоваться Qt из каталога сборки.

Для установки, выполните

Но если вы желаете провести установку в нестандартный каталог, для того чтобы протестировать Qt5, вам необходимо описать где будет находиться каталог bin вашей установки в переменной PATH. Также вы должны или удостовериться, что не имеете переменнной среды QTDIR, или опишите в этой переменной путь установки перед тем как будете выполнять make install. Например, при установке в /opt/qt5 (это предполагает, использование bash; для csh-подобных оболочек вы должны будете сначала выполнить setenv эквиваленты):

PATH=/opt/qt5:$PATH QTDIR=/opt/qt5 make install

Очистка

Для получения действительно чистого дерева используйте:

git submodule foreach —recursive ‘git clean -dfx’

с некоторых пор, confclean, больше не работает из верхнего уровня репозитария.

Получение обновлений

Чтобы обновить qt5.git репозитарий, а также подмодули до последних известных протестированных версий, выполните

git pull git submodule update —recursive

Если вы планируете делать ночные сборки, рассмотрите использование сценария qt5_tool, который находится в qtrepotools/bin. Этот сценарий предоставляет возможность обновления репозитария, очистки и сборки. Например,

qt5_tool -u -c -b может использоваться, чтобы очистить, обновить и собрать. А

qt5_tool -p -c- b используется для того чтобы получить все головные модули и их основные ответвления.

  • Подсказка 1:git submodule update делает «жесткий» сброс подмодулей, потенциально избавляя от любых нежелательных изменений которые вы сделали! Если это произошло с вами (и вы не работали с персональными ответвлениями), git reflog, ваш друг….
  • Подсказка 2: При создании сценариев для обновлений на Windows отметьте, что git clean часто сбоит, если какой либо процесс блокирует файл или папку.

Использование основных ответвлений в подмодулях

По умолчанию checkout не будет содержать последние основные ответвления каждого отдельного репозитария подмодуля, но содержит комбинацию версий, которые зависят друг от друга. Если требуется получить абсолютно последний материал, можете сделать например так:

cd qtdeclarative git fetch git checkout master origin/master

или используйте qt5_tool, чтобы обновить все репозитарии:

Однако, всегда есть шанс, что компиляция перестанет работать из-за несовместимых версий подмодулей! В таком случае, вы можете спросить у других людей, активно работающих над модулем, как разрешить эти несовместимости.

Известные проблемы

Linux

сбой конфигурации с «No QPA platform plugin enabled! » (Linux)

Вам необходимо установить libxcb, и его зависимые пакеты, см. ‘Системные требования’.

qmlscene сообщение об ошибке «Cannot create platform GL context, none of GLX, EGL, DRI2 is enabled» (Linux)

Попытайтесь установить libx11-xcb-dev пакет:

sudo apt-get install libx11-xcb-dev

впоследствии вы должны повторно выполнить configure qtbase/src/plugins/platforms/xcb с опцией force для перекомпиляции.

WebKit не собирается при недостающем ICU

В настоящее время не конфигурируется проверка времени для ICU, так установите его через диспетчер пакетов.

для Ubuntu/Debian:

sudo apt-get install libicu-dev

для Fedora:

Альтернативно можете собрать Qt без webkit, удалив или переименовав qtwebkit, qtwebkit-examples-and-demos каталоги. -no-webkit опция конфигуратора еще не работает: https://bugreports.qt.io/browse/QTBUG-20577

Windows

qdeclarative не компилируется из-за без вести пропавших v8.lib (Windows)

Компиляция v8 в qtbase требует Python. Удостоверьтесь что python.exe прописан в переменной окружения % PATH% перейдите в каталог qtjsbackend, выполните qmake && nmake.

Проблема с отладкой OpenGL (Windows)

Установите переменную окружения QT_QPA_VERBOSE=gl:1 и запустите приложение с установленным DebugView. Журнал покажет требуемый по сравнению с полученной версией OpenGL. Если в логах журнала обнаружится что у него только OpenGL 1.1, то QML2 не будет работать. Обратите внимание на то, что qmlscene не будет сообщать об ошибках не поддерживаемых версий OpenGL.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar