Qt git настройка linux

Обновлено: 05.07.2024

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

Вам очевидно потребуется 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

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 зависимости

Mac OS X

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

Windows

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

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

Поддерживаемые компиляторы на Windows

Среда сборки Windows

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

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

ICU на Windows

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

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

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

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

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

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, чтобы принять лицензию и избавиться от вопроса о ее принятии.

Запускаем сборку, вызывая 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

  • Добавить 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, и его зависимые пакеты, см. 'Системные требования'.

Попытайтесь установить 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:

Windows

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

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

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

Может кто-нибудь объяснить, какие свойства git в Qt Creator?
Я установил Qt Creator и git. Во вкладке "Настройки" - "Управление версиями" есть вкладка "Общие", и есть несколько вариантов: путь для проверки скриптов, путь к файлам конфигурации и команда SSH promt. Должен ли я создавать эти файлы самостоятельно?

На вкладке "git" появляется поле "Prepend to path". Это путь к git? Например, "/usr/lib/git"?

И, наконец, что такое команда для "браузера репозитория"?

спросил(а) 2014-12-30T18:28:00+03:00 6 лет, 10 месяцев назад

Для 64-разрядной Windows.

    Установите Git для Windows.
    Поместите C:\Program Files\Git\bin в Сервис > Параметры. > Управление версиями > Git > Приоритет к PATH:

введите описание изображения здесь

Установите локальный репозиторий git в любую подходящую консоль (Git Bash) ( cd /c/project , git init , git add * , git commit , git remote add origin git@someserver:/some/path/to/project.git , git push ).
Работайте с вашим проектом в Qt Creator с помощью Инструменты > Git > Локальный репозиторий > Commit. > Commit and Push.

Это все. Вероятно, вы захотите использовать SSH-ключ без пароля, потому что Qt Creator не может легко обрабатывать ввод SSH-пароля (и его хранение). Однако некоторые сторонние инструменты могут это сделать для этого. Если вы хотите удалить пароль из своего SSH-ключа, используйте ssh-keygen -p .

Обратите внимание, что когда вы используете mysysgit под окнами, и вы не добавили его в PATH, вы можете установить для поля "Prepend to path" в конфигурации git следующее:

C:\Users\ваша учетная запись \AppData\Local\Programs\ Git\mingw64\bin\


Чтобы git работал.

Вкладка "Общие" содержит общие параметры для всех систем VCS. По умолчанию обычно все нормально, вам не нужно прикасаться к чему-либо, если оно работает для вас. Одна из настроек, которую вы можете изменить, - "Wrap submit message at".

В параметрах Git Prepend to PATH используется для установки пути к Git, если у вас его нет в системе PATH или вы хотите использовать версию, установленную в другом месте. Это в основном используется в Windows, это необязательно.

Браузер репозитория - это дополнительный исполняемый файл, доступный через меню Инструменты → Git → Инструменты → Браузер хранилища. Это только удобство, а не обязательное (я никогда не использовал его).

QtCreator использует git (gitHub) для управления заметками кода проекта

Я использую svn, готовясь разработать несколько небольших проектов с долгосрочным обслуживанием в соответствии с моими интересами, и использую gitHub для завершения долгосрочной разработки и сопровождения проекта.

Процесс установки (опущен), обратите внимание на установку git Bash (здесь будет Git Bash в контекстном меню):





Когда вы получите адрес файла секретного ключа, вы будете использовать содержимое секретного ключа в файле "id_rsa.pub".



Нажмите "Начать проект"


После успешного создания появится следующий рисунок:


Вы можете просмотреть git-адрес проекта (будет использоваться в qtcreator):


Добавьте ключ ssh машины ниже




Откройте QtCreator и настройте путь установки Git (просто укажите каталог bin Git), как показано на следующем рисунке:


Используйте qt для создания проекта, а затем действуйте, как показано ниже:


В папке щелкните правой кнопкой мыши и выберите "git bash here"


Я проверил его в Интернете, потому что github отключил TLS v1.0 и v1.1. Просто установите GCMW-1.14.0.exe. Адрес загрузки следующий:


Затем после входа в систему push не удастся, вам нужно сначала загрузить файл, потому что в github есть файл README.md,

Не получится, продолжаем:

Операция прошла успешно, как показано ниже:


Проверьте облако github, как показано ниже:


Потяните из github на локальный, он перезапишет локальные файлы, как и svn




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

Независимо от среды разработки можно действовать следующим образом.

1. Создаете пустой репозиторий на GitHub или любом другом серверном Git. Это будет удаленная копия вашего репозитория.

2. Создаете в своей любимой среде разработки новый проект.

3. С помощью консольного или графического клиента Git создаете в папке нового проекта репозиторий Git.


4. Делаете первый коммит, например с файлом .gitignore.

5. Настраиваете ссылку на удаленный репозиторий в локальном репозитории, созданном в 3
git remote add origin [URL удаленного репозитория]
origin - имя ссылки на удаленный репозиторий

6. Далее пользуетесь любым клиентом для работы с локальным репозиторием, включая встроенный в IDE.

exekhua

Что я делаю не так?

Идея моего метода была в том, что удаленный репозиторий (на Github) должен быть пустым. Но у вас он уже не пустой, так как в нем есть коммит с файлом .gitignore.
Поэтому меняем алгоритм работы следующим образом:
1. Создаете папку проекта.
2. В ней делаете новый репозиторий (git init). И не делаем в нем ни каких коммитов.
3. Добавляем в этом локальном репозитории ссылку на удаленный репозиторий на Github (git remote add origin [URL])
4. Выполняем команду git pull origin master.
5. Должен появиться файл .gitignore из репозитория с Github.

Далее можно делать коммиты в локальный репозиторий и отправлять их в удаленный командой git pull.

Объясню в чем ваша ошибка.
Вы делаете push из локального репозитория в котором еще не было сделано ни одного коммита. Ошибка вам говорит, что она не может найти ветку master. Что правильно, так как у вас ее просто нет.

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

Читайте также: