Я вижу несколько способов разрешения зависимостей.
Во-первых, можно собрать libcurl и libjansson статически и прилинковать к вашему приложению.
Во-вторых, помимо статических libcurl и libjansson можно собрать сам Qt тоже в статику и прилинковать к вашему приложению. На выходе вы получите исполнительный файл большого размера (размер можно урезать с помощью утилиты upx), который будет запускаться во всех современных дистрибутивах GNU/Linux, где есть иксы.
В-третьих, самый рациональный способ — собрать DEB- или RPM-пакет, в котором в зависимостях прописать пакеты libcurl3(4), libjansson4, и необходимые модули с qt4(5).
Ну а запустить сам бинарь просто. У вас в Qt Creator’е есть переменная окружения LD_LIBRARY_PATH. Просто скопируйте в терминал её значение перед запуском программы:
LD_LIBRARY_PATH=»/opt/QtSDKs/Qt5.3.1/5.3/gcc_64/lib:/opt/QtSDKs/Qt5.3.1/5.3/gcc_64/lib:/home/user/projects/jansson/lib:$LD_LIBRARY_PATH» ./my_cool_app
Curl у вас, похоже, собран статически. Попробуйте собрать jansson тоже в статику. Тогда ошибки error while loading shared libraries: libjansson.so.4: cannot open shared object file: No such file or directory вы не получите.
Изучение Qt Creator | Урок #2 — Создание приложения на C++
Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать
Ответы на вопрос 1
Вероятно, папки с библиотеками, которые вы используются, отсутствуют в путях для поиска разделяемых библиотек.
Если используете linux, то можете попробовать запустить свою программу предварительно добавив к переменной окружения LD_LIBRARY_PATH пути к соответствующим папкам.
Ответ написан более трёх лет назад
Нравится 1 7 комментариев
не помогло. не знаю в чем дело, но вот если я заменю $$PWD на . то проблемы возникают только при jansson.so
export LD_LIBRARY_PATH=»./jansson:./curl»
./myapp
и это не работает? Очень странно, могу тогда только гадать, можете попробовать временно добавить копии используемых библиотек в /usr/lib, затем вызвать ldconfig от суперпользователя и попробовать заново запустить программу? Если поможет, то делать deb пакет можно и так, в любом случае вы при установке разделяемые библиотеки отправите куда-то туда же
Я уже окончательно запутался потому, что программа начала запускаться даже если этих папок с библиотеками нет под боком.
> туда установятся библиотеки, то на другой машине оно у меня не работает
либо ошибка не в отсутствующей библиотеке, либо вы просто неправильный пакет сделали. Проверьте, а попали ли вообще библиотеки в пакет?
Источник: qna.habr.com
Не удалось запустить программу. Путь или разрешения неверны? в Qt
Я загрузил проект с открытым исходным кодом Qt Mobility. У меня был набор демонстрационных приложений. И когда построил его и запустил приложение, я получил эту ошибку:
не удалось запустить программу. Путь или разрешения неправильные?
Запуск Qt приложений .exe вне Qt Creator
может кто-нибудь сказать мне, что это за проблема?
обновление:
У меня есть включить «.pro » содержимое файла:
TEMPLATE = app TARGET = writemessage QT += gui include(../examples.pri) CONFIG += mobility MOBILITY = messaging INCLUDEPATH += ../../src/messaging HEADERS += messagesender.h SOURCES += messagesender.cpp main.cpp symbian:TARGET.CAPABILITY = NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment ReadDeviceData WriteDeviceData
автор: mmoment
7 ответов
Я думаю, что проблема, с которой вы столкнулись здесь, — это либо права пользователя исполняемого файла, либо неправильный путь сборки.
во — первых, попробуйте установить путь сборки в разделе «Проекты» — «общие» — каталог сборки на правильный путь. Если это не сработает, откройте терминал, перейдите к пути сборки и выполните./ QtBuildProgram. Если это не сработает, взгляните на права пользователя (ls-a ./QtBuildProgram ), возможно, исполняемые права не предоставляются, потому что вы запускаете Создателя в другом режим пользователя как эмулятор терминала.
чтобы быть уверенным, выполните sudo chmod u+x QtBuildProgram, а затем выполните программу из командной строки, введя./ QtBuildProgram
Это также должно позволить вам снова запустить программу из QtCreator.
автор: mmoment
У меня была такая же проблема в Windows. Я нашел ответ. Вам нужно проверить параметр «рабочий каталог» в разделе «выполнить настройки». Я изменил его на тот же путь, что и мой каталог сборки, и он работал.
я запускал QT как администратор.
автор: gl3829
мой mac не был установлен valgrind по умолчанию, поэтому мне пришлось
brew install valgrind
вернитесь к Qt Creator, а в проектах — > Run — > Valgrind Settings
укажите исполняемый файл Valgrind на установленную версию brew, которую вы можете найти, введя which valgrind в командной строке.
наконец из-за сообщения об ошибке здесь я понял, что valgrind 3.13 имеет ошибку и не работает, и valgrind 3.12 также не работает на macs, и mac os high sierra не поддерживается valgrind. Так что вы в основном из смотреть до 3.14 приходит.
автор: Luke Murray
в моем случае это было потому, что у меня 32-разрядный процессор, и он создавал 64-разрядные исполняемые файлы. Я понял это только после того, как попытался запустить его из командной строки.
автор: Skyler
проверьте настройки запуска и посмотреть, если exe путь существует и файл построен там. Если вы используете windows 7 или windows 8, задайте для параметров исполняемого файла qtcreator значение «Запуск от имени администратора».
Источник: askdev.ru
Не удалось запустить программу. Неправильный путь или разрешения? в Qt
Я загрузил проект с открытым исходным кодом Qt Mobility. У меня был набор демонстрационных приложений. И когда я построил его и запустил приложение, я получил эту ошибку:
Не удалось запустить программу. Неправильный путь или разрешения?
Может кто подскажет, в чем может быть эта проблема?
ОБНОВИТЬ:
Запуск /Users/xxxxx/Qt/qt-mobility-opensource-src-1.0.2/config.app/Contents/MacOS/config . Не удалось запустить программу. Неправильный путь или разрешения?
Я включил содержимое файла «.pro»:
TEMPLATE = app TARGET = writemessage QT += gui include(../examples.pri) CONFIG += mobility MOBILITY = messaging INCLUDEPATH += ../../src/messaging HEADERS += messagesender.h SOURCES += messagesender.cpp main.cpp symbian:TARGET.CAPABILITY = NetworkServices LocalServices ReadUserData WriteUserData UserEnvironment ReadDeviceData WriteDeviceData
Это Qt Creator? Работает ли при запуске из командной строки? Также было бы полезно, если бы вы разместили свой файл .pro. — laalto
Запускать из командной строки не пробовал. Я только учусь этому. Я импортировал образец приложения для обмена сообщениями, который был частью проекта с открытым исходным кодом, в создатель Qt, и затем у меня возникла эта проблема. Я обновил свой вопрос содержимым файла .pro. — Krishnan
9 ответы
Я думаю, что проблема, с которой вы столкнулись, связана либо с правами пользователя исполняемого файла, либо с неправильным путем сборки.
Сначала попробуйте указать правильный путь для пути сборки в разделе «Проекты» — «Общие» — «Каталог сборки».
Если это не сработает, откройте терминал, перейдите по пути сборки и выполните ./QtBuildProgram
Если это не сработает, взгляните на права пользователя. ls -a ./QtBuildProgram
Возможно, права на исполняемый файл не предоставлены, потому что вы запускаете Creator в другом пользовательском режиме в качестве эмулятора терминала.
Чтобы быть уверенным, выполните sudo chmod u+x QtBuildProgram а затем выполните программу из командной строки, набрав ./QtBuildProgram
Это также должно позволить вам снова запустить программу из QtCreator.
ответ дан 03 мая ’19, 05:05
У меня была такая же проблема в Windows. Я нашел ответ. Вам необходимо проверить параметр «Рабочий каталог» в разделе «Параметры запуска». Я изменил его на тот же путь, что и мой каталог сборки, и он сработал.
Я запускал QT как администратор.
ответ дан 20 авг.
На моем Mac по умолчанию не был установлен valgrind, поэтому мне пришлось
brew install valgrind
Вернитесь в QT Creator и в Projects -> Run -> Valgrind Settings
Направьте исполняемый файл Valgrind на установленную версию brew, которую вы можете найти, набрав which valgrind в командной строке.
Наконец из-за отчета об ошибке здесь Я понял, что valgrind 3.13 имеет ошибку и не работает, и valgrind 3.12 также не работает на Mac, а mac os high sierra не поддерживается valgrind. Так что вы в основном вне поля зрения, пока не появится версия 3.14.
Создан 09 июля ’18, 03:07
В моем случае это произошло из-за того, что у меня 32-битный процессор и он собирал 64-битные исполняемые файлы. Я понял это только после попытки запустить его из командной строки.
Проверьте настройки запуска и посмотрите, существует ли путь exe и создается ли там файл. Если вы используете Windows 7 или Windows 8, установите для исполняемого файла qtcreator значение «Запуск от имени администратора».
Проверьте настройки антивируса.
Это была моя проблема.
Создан 09 июля ’18, 03:07
В моем случае эта ошибка была вызвана пробелом в начале пути «Рабочий каталог» в «Параметры запуска».
Создан 17 июля ’19, 15:07
В моем случае эта ошибка возникла из-за того, что антивирус блокировал запуск exe-файла. Я просто отключил Avira Shield на некоторое время, и это сработало.
Создан 02 июля ’20, 14:07
В моем случае это произошло потому, что мне не хватало этих двух строк кода в верхней части проекта. Убедитесь, что они у вас есть без пробелов над ними:
#! /usr/bin/env python # -*- coding: utf-8 -*-
Создан 23 июля ’16, 23:07
Источник: stackovergo.com