164 lines
6.2 KiB
Prolog
Raw Normal View History

2026-06-26 17:55:15 +08:00
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-definitionlibavcodec 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 SDKMvsDevice 是静态库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