QT += core gui network widgets CONFIG += c++17 TARGET = DroneScrewCtrlApp TEMPLATE = app DEFINES += QT_DEPRECATED_WARNINGS DEFINES += UNICODE DEFINES += _UNICODE win32-msvc { QMAKE_CXXFLAGS += /utf-8 } # 头文件路径 INCLUDEPATH += $$PWD/Presenter/Inc INCLUDEPATH += $$PWD/../DroneScrewCtrlConfig/Inc INCLUDEPATH += $$PWD/../../../Utils/VrCommon/Inc INCLUDEPATH += $$PWD/../../../Utils/VrUtils/Inc INCLUDEPATH += $$PWD/../../../Module/ShareMem/Inc INCLUDEPATH += $$PWD/../../../Module/ZeroMQClient/Inc INCLUDEPATH += $$PWD/../../../Module/ZeroMQPubSub/Inc INCLUDEPATH += $$PWD/../../../Module/FFMediaStream/Inc INCLUDEPATH += $$PWD/../../../Module/AuthModule/Inc INCLUDEPATH += $$PWD/../../../Module/WDRemoteReceiver/Inc INCLUDEPATH += $$PWD/../../../AppUtils/AppCommon/Inc INCLUDEPATH += $$PWD/../../../AppUtils/AppConfig/Inc INCLUDEPATH += $$PWD/../../../AppUtils/UICommon/Inc # Protobuf / ZeroMQ INCLUDEPATH += $$PWD/../../../SDK/Protobuf_3_20/include INCLUDEPATH += $$PWD/../../../SDK/ZeroMQ/include # 源文件 SOURCES += \ main.cpp \ mainwindow.cpp \ dialogalgoarg.cpp \ dialogcamerasetting.cpp \ dialoghistoryresult.cpp \ resultitem.cpp \ Presenter/Src/ConfigManager.cpp \ Presenter/Src/DroneScrewCtrlPresenter.cpp HEADERS += \ mainwindow.h \ dialogalgoarg.h \ dialogcamerasetting.h \ dialoghistoryresult.h \ resultitem.h \ Version.h \ IYDroneScrewCtrlStatus.h \ Presenter/Inc/ConfigManager.h \ Presenter/Inc/DroneScrewCtrlPresenter.h FORMS += \ mainwindow.ui \ dialogalgoarg.ui \ dialogcamerasetting.ui \ dialoghistoryresult.ui \ resultitem.ui RESOURCES += \ ../../../AppUtils/UICommon/common_resources.qrc \ resources.qrc # Windows 任务栏 / exe 图标 win32 { RC_ICONS = resource/logo.ico } # 链接 win32:CONFIG(debug, debug|release) { LIBS += -L../../../Utils/VrUtils/debug -lVrUtils LIBS += -L../../../AppUtils/UICommon/debug -lUICommon LIBS += -L../../../AppUtils/AppCommon/debug -lAppCommon LIBS += -L../../../AppUtils/AppConfig/debug -lAppConfig LIBS += -L../../../Module/AuthModule/debug -lAuthModule LIBS += -L../../../Module/ZeroMQClient/debug -lZeroMQClient LIBS += -L../../../Module/ZeroMQPubSub/debug -lZeroMQPubSub LIBS += -L../../../Module/FFMediaStream/debug -lFFMediaStream LIBS += -L../../../Module/ShareMem/debug -lShareMem LIBS += -L../../../Module/WDRemoteReceiver/debug -lWDRemoteReceiver LIBS += -L../DroneScrewCtrlConfig/debug -lDroneScrewCtrlConfig }else:win32:CONFIG(release, debug|release){ LIBS += -L../../../Utils/VrUtils/release -lVrUtils LIBS += -L../../../AppUtils/UICommon/release -lUICommon LIBS += -L../../../AppUtils/AppCommon/release -lAppCommon LIBS += -L../../../AppUtils/AppConfig/release -lAppConfig LIBS += -L../../../Module/AuthModule/release -lAuthModule LIBS += -L../../../Module/ZeroMQClient/release -lZeroMQClient LIBS += -L../../../Module/ZeroMQPubSub/release -lZeroMQPubSub LIBS += -L../../../Module/FFMediaStream/release -lFFMediaStream LIBS += -L../../../Module/ShareMem/release -lShareMem LIBS += -L../../../Module/WDRemoteReceiver/release -lWDRemoteReceiver LIBS += -L../DroneScrewCtrlConfig/release -lDroneScrewCtrlConfig }else:unix:!macx { LIBS += -L../DroneScrewCtrlConfig -lDroneScrewCtrlConfig LIBS += -L../../../AppUtils/UICommon -lUICommon LIBS += -L../../../AppUtils/AppCommon -lAppCommon LIBS += -L../../../AppUtils/AppConfig -lAppConfig LIBS += -L../../../Module/AuthModule -lAuthModule LIBS += -L../../../Module/ZeroMQClient -lZeroMQClient LIBS += -L../../../Module/ZeroMQPubSub -lZeroMQPubSub LIBS += -L../../../Module/FFMediaStream -lFFMediaStream LIBS += -L../../../Module/ShareMem -lShareMem LIBS += -L../../../Module/WDRemoteReceiver -lWDRemoteReceiver LIBS += -L../../../Utils/VrUtils -lVrUtils # 系统库(板子自带) LIBS += -lrga # MPP 动态库 + FFmpeg 静态库搜索路径 MPP_LIB_DIR = $$PWD/../../../SDK/mpp/lib FFMPEG_LIB_DIR = $$PWD/../../../SDK/ffmpeg-rockchip/lib LIBS += -L$${MPP_LIB_DIR} LIBS += -L$${FFMPEG_LIB_DIR} # FFmpeg-rockchip 静态库 # --whole-archive:解决 .a 间循环依赖 + ff_log_level 等内部符号 # --allow-multiple-definition:libavcodec 和 libswscale 都编译了 half2float.o(重复但完全相同) LIBS += -Wl,--whole-archive LIBS += -lavformat -lavcodec -lswscale -lavutil -lswresample LIBS += -Wl,--no-whole-archive LIBS += -Wl,--allow-multiple-definition # FFmpeg / MPP 传递依赖 LIBS += -lrockchip_mpp -lz -llzma -ldrm -lpthread -ldl # ZeroMQ LIBS += -L$$PWD/../../../SDK/ZeroMQ/Arm/aarch64 -lzmq # WDRemoteReceiver uses OpenCV imgcodecs for PNG raw-image decode. OPENCV_LIB_DIR = $$PWD/../../../SDK/OpenCV320/Arm/aarch64 LIBS += -L$${OPENCV_LIB_DIR} -lopencv_imgcodecs -lopencv_core QMAKE_LFLAGS += -Wl,-rpath-link,$${OPENCV_LIB_DIR} LIBS += -lpthread -ldl } win32 { LIBS += -lws2_32 LIBS += Advapi32.lib # ZeroMQ CONFIG(release, debug|release) { LIBS += -L$$PWD/../../../SDK/ZeroMQ/Windows/x64/Release -llibzmq-v142-mt-4_3_5 LIBS += -L$$PWD/../../../SDK/Protobuf_3_20/Windows/x64/Release -llibprotobuf } else { LIBS += -L$$PWD/../../../SDK/ZeroMQ/Windows/x64/Debug -llibzmq-v142-mt-gd-4_3_5 LIBS += -L$$PWD/../../../SDK/Protobuf_3_20/Windows/x64/Debug -llibprotobuf } } unix { target.path = /opt/dronescrewctrl LIBS += -lrt } !isEmpty(target.path): INSTALLS += target