團隊自研股票軟件,關威信共總號:QStockView,下載
1.1 windows系統編譯的Qt程序轉到國產化麒麟linux中編譯
(1)把Vs工程項目文件導入到Linux中
首先把vs的工程拷貝到linux裏面(可以用虛擬機的共享文件夾功能),把工程裏面的目錄Debug、GeneratedFiles、Release、Win32、x64和文件…user、…sln、…vcxproj、…filters刪掉。這裏根據vs版本的不同刪除的文件和目錄也可能不同。只要保留.h、.cpp、.qrc(沒有這個文件編譯出來的Qt項目會顯示不了圖片)、.ui文件和Resources目錄就可以了;
(5)生成pro文件
執行如下命令,會生成XXX.pro項目文件
qmake -project QT+=widgets
(6)生成makefile文件
執行命令qmake命令,或者用QtCreator打開項目文件.pro文件,然後執行構建—執行qmake,會生成makefile文件;
(7)修改pro文件,增加依賴庫,頭文件包含目錄,編譯命令;
######################################################################
# Automatically generated by qmake (3.1) Fri Apr 14 16:27:32 2023
######################################################################
#增加qt依賴
QT+=widgets gui
QT+=sql
QT+=core
QT+=printsupport
#設置編譯類型
TEMPLATE = app
#輸出目標,名稱;
TARGET = AnalysisCenter
#設置中間生成文件的路徑
MOC_DIR=$$PWD/temp/moc
RCC_DIR=$$PWD/temp/rcc
UI_DIR=$$PWD/temp/ui
OBJECTS_DIR=$$PWD/temp/obj
#設置程序輸出路徑,$$PWD爲pro文件所在路徑
DESTDIR=$$PWD/linuxx64
#設置包含文件路徑
INCLUDEPATH += $$PWD/include/
INCLUDEPATH += $$PWD/include/HUIControl/
INCLUDEPATH += $$PWD/include/HUIControl/GeneratedFiles/
INCLUDEPATH += $$PWD/include/hpr/
INCLUDEPATH += $$PWD/include/videoplay/
INCLUDEPATH += $$PWD/include/hlog/
INCLUDEPATH += $$PWD/include/curl/
#設置文件編碼格式,不然會出現中文亂碼
QMAKE_CXXFLAGS +=-finput-charset=UTF-8 -fexec-charset=utf-8
#添加依賴庫文件
LIBS += -L$$PWD/linuxx64/ -lhlog -lhpr -lHUIControl -lQt5Svg -lPlayCtrl -lSystemTransform -lcurl -lAnalyzeData
#-Wl,-rpath=設置依賴庫路徑爲程序當前路徑,不然Qt會默認使用安裝包的庫,造成錯誤;
LIBS += -Wl,-rpath=./
QMAKE_LFLAGS += -Wl,-rpath,"'\$$ORIGIN'" -Wl,-rpath,"./" -Wl,-rpath-link,"$(DESTDIR)"
#設置依賴庫路徑
DEPENDPATH +=.
#自動生成的文件包含依賴關係
# The following define makes your compiler warn you 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
# Input
HEADERS += include/Algorithm.h \
include/AlgPublicDefine.h \
include/AnalyzeDataDefine.h \
include/AnalyzeDataNewInterface.h \
include/base_define.h \
include/CrashAPI.h \
FORMS += src/AddClusterTask.ui \
src/AddTaskItem.ui \
src/AddVedioAnaTask.ui \
src/AddVideoCollision.ui \
src/AnalysisTaskItem.ui \
src/CaseItem.ui \
src/CaseStateWidget.ui \
src/CCustomButton.ui \
src/Cluster.ui \
src/ClusterContainer.ui \
src/ClusterDetails.ui \
src/ClusterDetailsItem.ui \
src/ClusterLoadWait.ui \
src/WaringDialog.ui
SOURCES += src/AddClusterTask.cpp \
src/AddFileTaskItem.cpp \
src/AddVedioAnaTask.cpp \
src/AddVideoCollision.cpp \
src/AnalysisTaskItem.cpp \
src/aspectratiopixmaplabel.cpp \
src/CaseItem.cpp \
src/CaseStateWidget.cpp \
src/CCustomButton.cpp \
src/ClientAgent.cpp \
src/Cluster.cpp \
RESOURCES += src/facematch.qrc