Кросскомпиляция в Qt

382
31 августа 2017, 20:26

Необходимо собрать проект под систему на 32bit arm из системы x86_64 (надеюсь, в определениях не напутал, на интеловский x64 процессор, на целевой системе Cortex A7).

Проект включает в себя один лишь файл main.cpp, и все бы ничего, если бы к нему помимо этого не была подключена статическая библиотека. Если бы не она, то можно было бы, скажем, собрать все на целевой системе, или собрать на десктопе, используя кросс-компилятор, но здесь же я не знаю как действовать без IDE. Раз так, необходимо создать комплект для Qt, который будет собирать сборку для моей целевой системы.

Установил:

  • g++-arm-linux-gnueabihf
  • gcc-4.8-multilib g++-4.8-multilib,
  • gcc-multilib g++-multilib.

В Qt добавил компиляторы "arm" и "arm++", указав в них пути к исполняемым файлам "/usr/bin/arm-linux-gnueabihf-gcc" и "/usr/bin/arm-linux-gnueabihf-gcc" соответственно. Путь к make прописал в обоих случаях как "/usr/bin/make". ABI настроен так: x86-linux-generic-elf-64bit.

Весь этот процесс был долгим (данный набор постоянно был с какими-нибудь ошибками и либо вовсе не появлялся среди наборов при создании проектов, либо не начинал компиляцию). В результате, я скомпилировал проект, но на целевой системе он не запустился (exec format error).

Библиотеку (curl) я собирал посредством cmake, и вроде вызывал ./configure --target=armhf-linux --with-libssh2 (это было порядка месяца назад, после решил взять перерыв), но что-то я, видимо, сделал по-прежнему не так.

Я был бы крайне признателен, если бы мне пошагово объяснили необходимую последовательность действий. Я более чем уверен, что здесь даже IDE не требуется. Просто я не знаю, как решить задачу без нее (ну, т.е. я знаю, пишешь makefile, запускаешь make и вуаля - компилируй хоть на целевой системе, но не думаю, что я напишу makefile).

READ ALSO
Не работает самописный tracert

Не работает самописный tracert

Сделал свою реализацию tracerouteНи один маршрутизатор не отвечает на эхо-запрос

322
Каким образом среда Visual Studio рассчитывает память для процесса?

Каким образом среда Visual Studio рассчитывает память для процесса?

При вызове функции Add() 10 000 000 раз функция HowManySize() вернет значение которое будет равно примерно 152 мегабайтамОднако средства диагностики Visual...

313
специализация шаблонной функции c++

специализация шаблонной функции c++

Итак, задача : Реализовать шаблонные функции (массив передаётся в функцию в качестве параметра), выполняющие следующие действия:

274
jquery post запрос(json ответ)

jquery post запрос(json ответ)

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

311