#c #qt
#c #qt
Вопрос:
Я пытаюсь получить пример hello world, работающий с последней версией Qt в Ubuntu 20.04. Я компилирую с помощью автоматически сгенерированного Makefile
продукта qmake
. После компиляции двоичный файл не имеет достаточных разрешений. После предоставления разрешений я получаю Exec format error
. Запуск file
выходного исполняемого файла возвращает ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
результат. Запуск uname -mpi
на моей машине выводит x86_64 x86_64 x86_64
. Мне кажется, что архитектура и двоичный файл совместимы, но по какой-то причине я получаю Exec format error
. Я что-то недопонимаю или мне нужно настроить этап компиляции в Makefile
, чтобы он был совместим с моим оборудованием?
Комментарии:
1. Интересно, является ли виновником одна из разделяемых библиотек, на которую ссылается ваш исполняемый файл? Возможно, вы захотите запустить
ldd
свой исполняемый файл в качестве аргумента и посмотреть, с какими разделяемыми библиотеками он связан, а затем посмотреть, для какой архитектуры они скомпилированы.2. @JeremyFriesner Результат
ldd hello.o
таковnot a dynamic executable
. Не уверен, подразумевает ли это какую-то другую проблему.3. Похоже, вы пытаетесь выполнить неправильный файл.
hello.o
это не исполняемый файл, это объектный файл. Исполняемый файл обычно называется, напримерhello
, без расширения.