2QT += core QT += network QT += gui QT += xml TEMPLATE = app TARGET = DroneScrewServer CONFIG += c++17 console CONFIG -= app_bundle # UTF-8 编码 win32-msvc { QMAKE_CXXFLAGS += /utf-8 } DEFINES += QT_DEPRECATED_WARNINGS # 头文件路径 INCLUDEPATH += $$PWD/../../../Utils/VrCommon/Inc INCLUDEPATH += $$PWD/../../../Utils/VrUtils/Inc INCLUDEPATH += $$PWD/../../../AppUtils/AppCommon/Inc INCLUDEPATH += $$PWD/../../../AppUtils/AppConfig/Inc # 设备:MvsDevice INCLUDEPATH += $$PWD/../../../Device/MvsDevice/Inc # 模块:ZeroMQ Server + PubSub + FFMediaStream + WDRemoteReceiver(头复用) INCLUDEPATH += $$PWD/../../../Module/ZeroMQServer/Inc INCLUDEPATH += $$PWD/../../../Module/ZeroMQPubSub/Inc INCLUDEPATH += $$PWD/../../../Module/FFMediaStream/Inc INCLUDEPATH += $$PWD/../../../Module/WDRemoteReceiver/Inc INCLUDEPATH += $$PWD/../../../Module/AuthModule/Inc # Protobuf / ZeroMQ 头 INCLUDEPATH += $$PWD/../../../SDK/Protobuf_3_20/include INCLUDEPATH += $$PWD/../../../SDK/ZeroMQ/include # MPP headers INCLUDEPATH += $$PWD/../../../SDK/mpp/include INCLUDEPATH += $$PWD/../../../SDK/mpp/include/rockchip # 算法占位接口 INCLUDEPATH += $$PWD/Algo INCLUDEPATH += $$PWD/../../../AppAlgo/stereo_bolt_delivery/include SOURCES += \ main.cpp \ DroneScrewServerPresenter.cpp \ DroneScrewZmqProtocol.cpp \ Algo/DroneScrewAlgoStub.cpp HEADERS += \ DroneScrewServerPresenter.h \ DroneScrewZmqProtocol.h \ Version.h \ Algo/IDroneScrewAlgo.h \ Algo/DroneScrewAlgoStub.h # ====== Windows 链接 ====== win32:CONFIG(debug, debug|release) { LIBS += -L../../../Device/MvsDevice/debug -lMvsDevice LIBS += -L../../../Module/FFMediaStream/debug -lFFMediaStream LIBS += -L../../../Module/ZeroMQServer/debug -lZeroMQServer LIBS += -L../../../Module/ZeroMQPubSub/debug -lZeroMQPubSub LIBS += -L../../../Module/AuthModule/debug -lAuthModule LIBS += -L../../../Utils/VrUtils/debug -lVrUtils LIBS += -L../../../AppUtils/AppCommon/debug -lAppCommon LIBS += -L../../../AppUtils/AppConfig/debug -lAppConfig LIBS += -L../../../Module/ModbusTCPServer/debug -lModbusTCPServer LIBS += -L../../../Module/ShareMem/debug -lShareMem LIBS += -L../../../VrNets/debug -lVrModbus }else:win32:CONFIG(release, debug|release){ LIBS += -L../../../Device/MvsDevice/release -lMvsDevice LIBS += -L../../../Module/FFMediaStream/release -lFFMediaStream LIBS += -L../../../Module/ZeroMQServer/release -lZeroMQServer LIBS += -L../../../Module/ZeroMQPubSub/release -lZeroMQPubSub LIBS += -L../../../Module/AuthModule/release -lAuthModule LIBS += -L../../../Utils/VrUtils/release -lVrUtils LIBS += -L../../../AppUtils/AppCommon/release -lAppCommon LIBS += -L../../../AppUtils/AppConfig/release -lAppConfig LIBS += -L../../../Module/ModbusTCPServer/release -lModbusTCPServer LIBS += -L../../../Module/ShareMem/release -lShareMem LIBS += -L../../../VrNets/release -lVrModbus }else:unix:!macx { # ====== Linux/ARM 链接 ====== LIBS += -L../../../Device/MvsDevice -lMvsDevice LIBS += -L../../../Module/FFMediaStream -lFFMediaStream LIBS += -L../../../Module/ZeroMQServer -lZeroMQServer LIBS += -L../../../Module/ZeroMQPubSub -lZeroMQPubSub LIBS += -L../../../Module/AuthModule -lAuthModule LIBS += -L../../../AppUtils/AppCommon -lAppCommon LIBS += -L../../../AppUtils/AppConfig -lAppConfig LIBS += -L../../../Module/ModbusTCPServer -lModbusTCPServer LIBS += -L../../../Module/ShareMem -lShareMem LIBS += -L../../../VrNets -lVrModbus LIBS += -L../../../Utils/VrUtils -lVrUtils DEFINES += DRONESCREW_STEREO_BOLT_DIRECT_LINK LIBS += -L$$PWD/../../../AppAlgo/stereo_bolt_delivery/lib -lstereo_bolt OPENCV450_LIB_DIR = $$PWD/../../../SDK/OpenCV450/Arm/aarch64/lib LIBS += -L$${OPENCV450_LIB_DIR} QMAKE_LFLAGS += -Wl,-rpath-link,$${OPENCV450_LIB_DIR} # MVS SDK LIBS += -L$$PWD/../../../SDK/Device/MVS/MVS_STD_V3.0.1_251113/MVS-3.0.1_aarch64_20251113/lib/aarch64 LIBS += -lMvCameraControl # 系统库(板子自带) 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 / Protobuf LIBS += -L$$PWD/../../../SDK/ZeroMQ/Arm/aarch64 -lzmq LIBS += -L$$PWD/../../../SDK/Protobuf_3_20/Arm/aarch64 -lprotobuf LIBS += -lpthread -ldl # 允许未定义符号(运行时由系统库提供) QMAKE_LFLAGS += -Wl,--allow-shlib-undefined } # Windows 系统库 win32 { LIBS += -lws2_32 LIBS += Shell32.lib # MVS SDK(MvsDevice 是静态库,LIBS 不会传递,需要这里再链一次) # 全部从仓库内 SDK 取,不依赖系统安装 LIBS += -L$$PWD/../../../SDK/Device/MVS/MVS_Win_STD_5.0.0_260417/Development/Libraries/win64 -lMvCameraControl # 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/dronescrewserver LIBS += -lrt } !isEmpty(target.path): INSTALLS += target