Почему Qt нужно собирать из исходников для кросс-компиляции?

Мне нужно создать приложение Qt для ARM. Так много страниц, как Вот этот, показывают, что мне нужно собрать Qt из исходного кода, используя длительный процесс. Зачем это нужно? Разве я не могу просто изменить целевую платформу внутри Qt Creator, который я нахожу в Tools > Options > Build & Run > Compilers?

Я немного удивлен этим, потому что Eclipse CDT не требует такого процесса. Кажется, это предполагает, что я должен разные установки Qt для каждой конкретной платформы. Это похоже на плохой дизайн. Может ли кто-нибудь просветить меня по этому поводу?

Есть ли набор библиотек Qt, предварительно созданных для вашей цели? Доступно прямо из Qt Creator? Тогда обязательно используйте это. Но если готового набора библиотек нет, вам нужно создать их самостоятельно.

Some programmer dude 08.09.2018 08:07

Как проверить, доступен ли набор библиотек для моей целевой платформы? Я новичок в Qt, поэтому, пожалуйста, помогите мне.

J. Doe 08.09.2018 08:10

Что вы имеете в виду, говоря «Eclipse CDT не требует такого процесса»? Если вы хотите собрать для ARM с некоторыми библиотеками, вам нужны версии этих библиотек для ARM. Мне любопытно, если он работает из коробки с Eclipse CDT, где он берет библиотеки ARM.

hyde 08.09.2018 20:05

Набор инструментов для ARM G ++ принадлежит Linaro. Eclipse CDT не нужно собирать для использования с ARM.

J. Doe 08.09.2018 21:58

Если сам Qt поддерживает заданную цель, то его компиляция в большинстве случаев очень проста - это занимает много времени, но вы делаете это только один раз, и вам следует написать сценарий, чтобы вы: а) не забыли, как вы это сделали, б) убедитесь, что вы можете сделать его частью вашего непрерывного процесса интеграции, в) можете отслеживать изменения для процесса сборки в вашей системе контроля версий, г) можете делиться протестированным и воспроизводимым процессом с другими и т. д. Если Qt поддерживает цель, все вам нужен вызов configure с правильными аргументами, за которым следуют make -jN и make -jN install.

Kuba hasn't forgotten Monica 12.09.2018 15:18
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
5
195
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для пояснения следует указать на разницу между:

  • БИБЛИОТЕКА, то есть код, предоставленный Qt

а также

  • КОД, который использует библиотеку, то есть код, написанный вами.

Чтобы сэкономить время на повторную компиляцию БИБЛИОТЕКА, поскольку он не меняется так часто (среди других причин), он компилируется один раз, а затем скомпилированные двоичные файлы связываются в КОД.

Tools > Options > Build & Run > Compilers позволяет вам добавлять инструменты для компиляции КОД для целевой платформы, предоставлена у вас есть двоичные файлы, скомпилированные кем-то, например Qt для платформы такой же.

Если никто этого не сделал и (что наиболее важно) не предоставил вам доступ к двоичным файлам, то вы должны сделать это самостоятельно, а это означает, что вам придется собрать БИБЛИОТЕКА из его исходников.

Чтобы узнать, есть ли официальные предварительно скомпилированные двоичные файлы для вашей целевой платформы, посетите страницу автономные установщики.

Кажется, это правильное направление. Можете ли вы сказать мне, как я могу проверить, скомпилированы ли двоичные файлы для целевой платформы или нет?

J. Doe 08.09.2018 12:20

@ J.Doe, если кто-то любезно не предоставил такие двоичные файлы где-нибудь в Интернете, ответ - да (* собрать его из исходников). И теперь вы знаете почему.

scopchanov 08.09.2018 12:33

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

J. Doe 08.09.2018 12:34

Другие вопросы по теме