Правильная компиляция зависимостей в Qt

242
10 января 2018, 18:44

Написал приложение и скомпилировал его. Попытался запустить из QtCreator все нормально. Запуск через консоль, выдает ошибку, что оно не может найти библиотеки. Как скомпилировать или что прописать в .pro чтобы он находил их сам?

Компиляция под Linux.

.pro файл как просили

#-------------------------------------------------
#
# Project created by QtCreator 2017-09-19T12:26:24
#
#-------------------------------------------------
QT       += core gui network opengl gamepad multimedia multimediawidgets
#greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = ALADIN_BKS_Simulator
TEMPLATE = app
# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
INCLUDEPATH += "$$(GLSTUDIO)/include" \ #for GL STUDIO
    "$$(GLSTUDIO)/plugins/include" #for GL STUDIO
LIBS += -L"$$(GLSTUDIO)/lib" #for GL STUDIO
LIBS += -L"$$(GLSTUDIO)/plugins/lib" #for GL STUDIO
LIBS += -L"/usr/local/lib"
DEFINES += "GLS_IMPORT_LIBRARY" #for GL STUDIO
DEFINES += "LINUX"
DEFINES += EST_PEAK_NO_LIB_EXPORT
LIBS += -lglstudioLinux64_gcc_480 #for GL STUDIO
LIBS += -lgls_3d_cable_Linux64_gcc_480 #for GL STUDIO
LIBS += -lgls_advanced_mesh_Linux64_gcc_480 #for GL STUDIO
LIBS += -lgls_dynamic_path_Linux64_gcc_480 #for GL STUDIO
LIBS += -lgls_multi_view_Linux64_gcc_480 #for GL STUDIO
LIBS += -lgls_odometer_Linux64_gcc_480 #for GL STUDIO
LIBS += -lgls_nine_patch_Linux64_gcc_480 #for GL STUDIO
LIBS += -laudiofile #for GL STUDIO
LIBS += -lgls_map_aif_Linux64_gcc_480 #for GL STUDIO
LIBS += -lgls_map_cadrg_Linux64_gcc_480 #for GL STUDIO
LIBS += -lgls_map_dnc_Linux64_gcc_480 #for GL STUDIO
LIBS += -lgls_map_dted_Linux64_gcc_480 #for GL STUDIO
LIBS += -lgls_map_geotiff_Linux64_gcc_480 #for GL STUDIO
LIBS += -lgls_map_toolkit_Linux64_gcc_480 #for GL STUDIO
LIBS += -lgls_text_box_Linux64_gcc_480 #for GL STUDIO
LIBS += -lGeographic
INCLUDEPATH += $$PWD/ #for GL STUDIO
DEPENDPATH += $$PWD/ #for GL STUDIO
INCLUDEPATH += /usr/include/gstreamer-1.0
INCLUDEPATH += /usr/include/glib-2.0/
INCLUDEPATH += /usr/lib64/glib-2.0/include/
PKGCONFIG += GStreamer-1.0
PKGCONFIG += gstreamer-1.0 gstreamer-1.0-app
LIBS += -lglib-2.0 -lgstreamer-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lgstvideo-1.0
FORMS += \
    downlink.ui \
    flugdialog.ui \
    mainwindow.ui \
    uplink.ui \
    imagesettings.ui
DISTFILES += \
    config.xml \
    Aladin Pictures/[Play_symbol_Polygon].png \
    Aladin Pictures/[Stop_symbol_Polygon].png \
    Aladin Pictures/_AlbumAnfang_symbol_Polygon_.png \
    Aladin Pictures/_Albumbrowser_Symbol_Polygon_.png \
    Aladin Pictures/_AlbumEnde_symbol_Polygon_.png \
    Aladin Pictures/_AlbumOeffnen_Symbol_Polygon_.png \
    Aladin Pictures/_Aufnahme_symbol_Polygon_.png \
    Aladin Pictures/_bestaetigen_symbol_Polygon_.png \
    Aladin Pictures/_BildAufnehmen_symbol_Polygon_.png \
    Aladin Pictures/_Bildstabilisierung_Symbol_Polygon_.png \
    Aladin Pictures/_BildVor_symbol_Polygon_.png \
    Aladin Pictures/_BildZurueck_symbol_Polygon_.png \
    Aladin Pictures/_dreiD_links_symbol_Polygon_.png \
    Aladin Pictures/_dreiD_oben_symbol_Polygon_.png \
    Aladin Pictures/_dreiD_rechts_symbol_Polygon_.png \
    Aladin Pictures/_dreiD_Ueberhoehung_vergroessern_symbol_Polygon_.png \
    Aladin Pictures/_dreiD_Ueberhoehung_vermindern_symbol_Polygon_.png \
    Aladin Pictures/_dreiD_unten_symbol_Polygon_.png \
    Aladin Pictures/_dreiD_Zoom_minus_symbol_Polygon_.png \
    Aladin Pictures/_dreiD_Zoom_plus__symbol_Polygon_.png \
    Aladin Pictures/_Empfang_Symbol_Polygon_.png \
    Aladin Pictures/_EmpfangDrohneSelbst_Symbol_Polygon_.png \
    Aladin Pictures/_frontansicht_symbol_Polygon_.png \
    Aladin Pictures/_FuenfBilderVor_symbol_Polygon_.png \
    Aladin Pictures/_FuenfBilderZurueck_symbol_Polygon_.png \
    Aladin Pictures/_Halbbildentfernung_Symbol_Polygon_.png \
    Aladin Pictures/_InfoFenster_symbol_Polygon_.png \
    Aladin Pictures/_karte_verschieben_symbol_Polygon_.png \
    Aladin Pictures/_Konfig_symbol_Polygon_.png \
    Aladin Pictures/_Kontratserhoehung_Symbol_Polygon_.png \
    Aladin Pictures/_Koordinatenbildanzeige_Symbol_Polygon_.png \
    Aladin Pictures/_Nachbearbeitung_symbol_Polygon_.png \
    Aladin Pictures/_normalsicht_symbol_Polygon_.png \
    Aladin Pictures/_Pause_symbol_Polygon_.png \
    Aladin Pictures/_Schaerfung_Symbol_Polygon_.png \
    Aladin Pictures/_SchnellerBildruecklauf_symbol_Polygon_.png \
    Aladin Pictures/_SchnellerBildvorlauf_symbol_Polygon_.png \
    Aladin Pictures/_TimeCodeSuche_symbol_Polygon_.png \
    Aladin Pictures/_verfolgeransicht_symbol_Polygon_.png \
    Aladin Pictures/button_pressed.png \
    Aladin Pictures/button_not_pressed.png \
    waypoins.json
HEADERS += \
    GLMap/MapView.h \
    GLMap/waypoints.h \
    GLMap/xmlreader.h \
    GLMap/pugixml.hpp \
    GLMap/pugiconfig.hpp \
    GLMap/waypointdata.h \
    GStreamer/GStreamerVideo.h \
    GStreamer/gst_video_new.h \
    aladinclient.h \
    aladinlib.h \
    aladintypes.h \
    aladintypesfunctions.h \
    aladintypesmeta.h \
    aladintypessupport.h \
    downlink.h \
    flugdialog.h \
    global.h \
    mainwindow.h \
    minimalaladinclient.h \
    qglsrso.h \
    uplink.h \
    GeographicLib/Accumulator.hpp \
    GeographicLib/AlbersEqualArea.hpp \
    GeographicLib/AzimuthalEquidistant.hpp \
    GeographicLib/CassiniSoldner.hpp \
    GeographicLib/CircularEngine.hpp \
    GeographicLib/Config.h \
    GeographicLib/Constants.hpp \
    GeographicLib/DMS.hpp \
    GeographicLib/Ellipsoid.hpp \
    GeographicLib/EllipticFunction.hpp \
    GeographicLib/GARS.hpp \
    GeographicLib/Geocentric.hpp \
    GeographicLib/GeoCoords.hpp \
    GeographicLib/Geodesic.hpp \
    GeographicLib/GeodesicExact.hpp \
    GeographicLib/GeodesicLine.hpp \
    GeographicLib/GeodesicLineExact.hpp \
    GeographicLib/Geohash.hpp \
    GeographicLib/Geoid.hpp \
    GeographicLib/Georef.hpp \
    GeographicLib/Gnomonic.hpp \
    GeographicLib/GravityCircle.hpp \
    GeographicLib/GravityModel.hpp \
    GeographicLib/LambertConformalConic.hpp \
    GeographicLib/LocalCartesian.hpp \
    GeographicLib/MagneticCircle.hpp \
    GeographicLib/MagneticModel.hpp \
    GeographicLib/Math.hpp \
    GeographicLib/MGRS.hpp \
    GeographicLib/NearestNeighbor.hpp \
    GeographicLib/NormalGravity.hpp \
    GeographicLib/OSGB.hpp \
    GeographicLib/PolarStereographic.hpp \
    GeographicLib/PolygonArea.hpp \
    GeographicLib/Rhumb.hpp \
    GeographicLib/SphericalEngine.hpp \
    GeographicLib/SphericalHarmonic.hpp \
    GeographicLib/SphericalHarmonic1.hpp \
    GeographicLib/SphericalHarmonic2.hpp \
    GeographicLib/TransverseMercator.hpp \
    GeographicLib/TransverseMercatorExact.hpp \
    GeographicLib/Utility.hpp \
    GeographicLib/UTMUPS.hpp \
    gamepadmonitor.h
SOURCES += \
    GLMap/MapView.cpp \
    GLMap/waypoints.cpp \
    GLMap/xmlreader.cpp \
    GLMap/pugixml.cpp \
    GStreamer/GStreamerVideo.cpp \
    aladinclient.cpp \
    aladintypesmeta.cpp \
    downlink.cpp \
    flugdialog.cpp \
    main.cpp \
    mainwindow.cpp \
    minimalaladinclient.cpp \
    qglsrso.cpp \
    uplink.cpp \
    gamepadmonitor.cpp
RESOURCES += \
    panel_auswahl.qrc \
    ob_panel.qrc
Answer 1

Есть два путя:

  1. Использовать специальную программу/скрипт согласно руководству, которая соберёт зависимости в пучок.
  2. Компилировать Qt статически. Тогда его библиотеки встроятся в результирующий исполняемый файл. Если программа на продажу, то могут быть проблемы из-за лицензии (или ее отсутствия).
  3. Как истинный джедай - ползать и собирать зависимости руками. В этом глупом занятии поможет DependencyWalker, который может показывать библиотеки, которые использует процесс. Очевидно, смотреть нужно на запущенную программу в IDE.
READ ALSO
Получение содержимого ListView другого окна

Получение содержимого ListView другого окна

Задача состоит в получении содержимого элемента ListView другого окнаОднако, данный код приводит к критическому завершению работы процесса...

200
Проблема реализации класса матрицы C++

Проблема реализации класса матрицы C++

Учу классы и решил реализовать старую программу через классыНо возникла ошибка и не могу разобраться в чем дело

179
как перевести vector<int> в string?

как перевести vector<int> в string?

Решаю задачку по c++Почти решил,но появилась проблема

174
VS Code в связке с С++ (windows)

VS Code в связке с С++ (windows)

Помогите запустить (то есть собрать (build) и отладить) код с++ в vsCode на windows 10У меня уже установлен VS Community 2017 и расширение С/С++

208