1、qt 工程pro文件配置
QT -= gui
TEMPLATE = lib
ConFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked 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
# 设置宏定义
DEFINES += CURL_STATICLIB
#DEFINES += OS_ANDROID
# You can also make your code fail to compile if it uses 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
# 设置编译生成的临时文件输出路径
MOC_DIR = $$PWD/temp/moc
RCC_DIR = $$PWD/temp/rcc
UI_DIR = $$PWD/temp/ui
OBJECTS_DIR = $$PWD/temp/obj
# 设置头文件路径
INCLUDEPATH += ../public
# 条件编译
if(contains(DEFINES,OS_ANDROID)){
LIBS_PATH = ../public/arm-ca53-linux/lib
INCLUDEPATH += ../public/arm-ca53-linux/include
}else{ # 必须在同一行
LIBS_PATH = ../public/x86-64-linux/lib
INCLUDEPATH += ../public/x86-64-linux/include
DEPENDPATH += ../public/x86-64-linux/lib
}
# 打印
message($$LIBS_PATH)
SOURCES +=
../public/base64.cpp
EhcHandler.cpp
ErrorDefine.cpp
VirtualCardChk.cpp
../public/SM3.cpp
../public/StringUtil.cpp
../public/database.cpp
../public/httpsclient.cpp
../public/json/json_reader.cpp
../public/json/json_value.cpp
../public/json/json_writer.cpp
../public/LogUtil.cpp
../public/JsonUtil.cpp
../public/sm4.cpp
../public/md5.cpp
HEADERS +=
base64.h
EhcHandler.h
ErrorDefine.h
VirtualCardChk.h
SharedMutex.h
Singleton.h
StringUtil.h
ThreadLockCs.h
Util.h
database.h
httpsclient.h
json_batchallocator.h
json_internalarray.inl
json_internalmap.inl
json_valueiterator.inl
sm3.h
sm4.h
stdafx.h
# Default rules for deployment.
unix {
target.path = /usr/lib
}
!isEmpty(target.path): INSTALLS += target
# 链接静态库
LIBS += $$LIBS_PATH/libcurl.a
LIBS += $$LIBS_PATH/libssl.a
LIBS += $$LIBS_PATH/libcrypto.a
message($$LIBS)
2、基于qmake生成Makefile文件修改
#############################################################################
# Makefile for building: libVirtualCardChk.so.1.0.0
# Generated by qmake (3.1) (Qt 5.12.9)
# Project: ../VirtualCardChk/VirtualCardChk.pro
# Template: lib
# Command: /opt/Qt5.12.9/5.12.9/gcc_64/bin/qmake -o Makefile ../VirtualCardChk/VirtualCardChk.pro -spec linux-g++ CONFIG+=debug CONFIG+=qml_debug
#############################################################################
MAKEFILE = Makefile
EQ = =
# 设置交叉编译工具路径
CROSS_COMPILE_PATH = /opt/arm/arm-ca53-linux-gnueabihf-6.4/arm-ca53-linux-gnueabihf
# 设置curl和openssl路径
CURL_INCLUDE_PATH = ../public/arm-ca53-linux/include
CURL_LIB_PATH = ../public/arm-ca53-linux/lib
OPENSSL_INCLUDE_PATH = ../public/arm-ca53-linux/include
OPENSSL_LIB_PATH = ../public/arm-ca53-linux/lib
####### Compiler, tools and options
# 设置编译工具名称
CC = arm-ca53-linux-gnueabihf-gcc
CXX = arm-ca53-linux-gnueabihf-g++
DEFINES = -DCURL_STATICLIB
CFLAGS = -pipe -g -Wall -W -D_REENTRANT -fPIC $(DEFINES)
CXXFLAGS = -pipe -g -Wall -std=c++11 -W -D_REENTRANT -fPIC $(DEFINES)
# 设置头文件路径
INCPATH = -I../VirtualCardChk -I. -I../public -I$(CURL_INCLUDE_PATH) -I$(OPENSSL_INCLUDE_PATH) -I$(CROSS_COMPILE_PATH)/include/c++/6.4.0
DEL_FILE = rm -f
CHK_DIR_EXISTS= test -d
MKDIR = mkdir -p
COPY = cp -f
COPY_FILE = cp -f
COPY_DIR = cp -f -R
INSTALL_FILE = install -m 644 -p
INSTALL_PROGRAM = install -m 755 -p
INSTALL_DIR = cp -f -R
DEL_FILE = rm -f
SYMlink = ln -f -s
DEL_DIR = rmdir
MOVE = mv -f
TAR = tar -cf
COMPRESS = gzip -9f
DISTNAME = VirtualCardChk1.0.0
DISTDIR = /home/snail/Work/VirtualCardChk/src/VirtualCardChk/temp/obj/VirtualCardChk1.0.0
link = arm-ca53-linux-gnueabihf-g++
LFLAGS = -shared -Wl,-soname,libVirtualCardChk.so.1
# 设置需要的链接库
LIBS = $(SUBLIBS) -L$(CROSS_COMPILE_PATH)/lib -L$(CROSS_COMPILE_PATH)/sysroot/lib $(CURL_LIB_PATH)/libcurl.a $(OPENSSL_LIB_PATH)/libssl.a $(OPENSSL_LIB_PATH)/libcrypto.a -lpthread
AR = arm-ca53-linux-gnueabihf-ar cqs
RANLIB =
SED = sed
STRIP = arm-ca53-linux-gnueabihf-strip
####### Output directory
OBJECTS_DIR = ../VirtualCardChk/temp/obj/
####### Files
SOURCES = ../public/base64.cpp
../VirtualCardChk/EhcHandler.cpp
../VirtualCardChk/ErrorDefine.cpp
../VirtualCardChk/VirtualCardChk.cpp
../public/SM3.cpp
../public/StringUtil.cpp
../public/database.cpp
../public/httpsclient.cpp
../public/json/json_reader.cpp
../public/json/json_value.cpp
../public/json/json_writer.cpp
../public/LogUtil.cpp
../public/JsonUtil.cpp
../public/sm4.cpp
OBJECTS = ../VirtualCardChk/temp/obj/base64.o
../VirtualCardChk/temp/obj/EhcHandler.o
../VirtualCardChk/temp/obj/ErrorDefine.o
../VirtualCardChk/temp/obj/VirtualCardChk.o
../VirtualCardChk/temp/obj/SM3.o
../VirtualCardChk/temp/obj/StringUtil.o
../VirtualCardChk/temp/obj/database.o
../VirtualCardChk/temp/obj/httpsclient.o
../VirtualCardChk/temp/obj/json_reader.o
../VirtualCardChk/temp/obj/json_value.o
../VirtualCardChk/temp/obj/json_writer.o
../VirtualCardChk/temp/obj/LogUtil.o
../VirtualCardChk/temp/obj/JsonUtil.o
../VirtualCardChk/temp/obj/sm4.o
DIST = ../VirtualCardChk/VirtualCardChk.pro base64.h
../VirtualCardChk/EhcHandler.h
../VirtualCardChk/ErrorDefine.h
../VirtualCardChk/VirtualCardChk.h
SharedMutex.h
Singleton.h
StringUtil.h
ThreadLockCs.h
Util.h
database.h
httpsclient.h
json_batchallocator.h
json_internalarray.inl
json_internalmap.inl
json_valueiterator.inl
sm3.h
sm4.h
../VirtualCardChk/stdafx.h ../public/base64.cpp
../VirtualCardChk/EhcHandler.cpp
../VirtualCardChk/ErrorDefine.cpp
../VirtualCardChk/VirtualCardChk.cpp
../public/SM3.cpp
../public/StringUtil.cpp
../public/database.cpp
../public/httpsclient.cpp
../public/json/json_reader.cpp
../public/json/json_value.cpp
../public/json/json_writer.cpp
../public/LogUtil.cpp
../public/JsonUtil.cpp
../public/sm4.cpp
TARGET = libVirtualCardChk.so.1.0.0
TARGETA = libVirtualCardChk.a
TARGET0 = libVirtualCardChk.so
TARGETD = libVirtualCardChk.so.1.0.0
TARGET1 = libVirtualCardChk.so.1
TARGET2 = libVirtualCardChk.so.1.0
first: all
####### Build rules
libVirtualCardChk.so.1.0.0: $(OBJECTS) $(SUBLIBS) $(OBJCOMP)
-$(DEL_FILE) $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)
$(link) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) $(OBJCOMP)
-ln -s $(TARGET) $(TARGET0)
-ln -s $(TARGET) $(TARGET1)
-ln -s $(TARGET) $(TARGET2)
staticlib: libVirtualCardChk.a
libVirtualCardChk.a: $(OBJECTS) $(OBJCOMP)
-$(DEL_FILE) $(TARGETA)
$(AR) $(TARGETA) $(OBJECTS)
all: libVirtualCardChk.so.1.0.0
clean:
-$(DEL_FILE) $(OBJECTS)
distclean: clean
-$(DEL_FILE) $(TARGET)
-$(DEL_FILE) $(TARGET0) $(TARGET1) $(TARGET2) $(TARGETA)
####### Compile
../VirtualCardChk/temp/obj/base64.o: ../public/base64.cpp ../VirtualCardChk/stdafx.h
../public/sm3.h
../public/sm4.h
../public/base64.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/base64.o ../public/base64.cpp
../VirtualCardChk/temp/obj/EhcHandler.o: ../VirtualCardChk/EhcHandler.cpp ../VirtualCardChk/EhcHandler.h
../VirtualCardChk/ErrorDefine.h
../public/Util.h
../VirtualCardChk/stdafx.h
../public/sm3.h
../public/sm4.h
../public/base64.h
../public/database.h
../public/Des.h
../public/md5.h
../public/json/json.h
../public/json/autolink.h
../public/json/config.h
../public/json/value.h
../public/json/forwards.h
../public/json/reader.h
../public/json/features.h
../public/json/writer.h
../public/httpsclient.h
$(OPENSSL_INCLUDE_PATH)/openssl/sha.h
$(OPENSSL_INCLUDE_PATH)/openssl/e_os2.h
$(OPENSSL_INCLUDE_PATH)/openssl/opensslconf.h
../public/LogUtil.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/EhcHandler.o ../VirtualCardChk/EhcHandler.cpp
../VirtualCardChk/temp/obj/ErrorDefine.o: ../VirtualCardChk/ErrorDefine.cpp ../VirtualCardChk/ErrorDefine.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/ErrorDefine.o ../VirtualCardChk/ErrorDefine.cpp
../VirtualCardChk/temp/obj/VirtualCardChk.o: ../VirtualCardChk/VirtualCardChk.cpp ../VirtualCardChk/VirtualCardChk.h
../VirtualCardChk/EhcHandler.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/VirtualCardChk.o ../VirtualCardChk/VirtualCardChk.cpp
../VirtualCardChk/temp/obj/SM3.o: ../public/SM3.cpp ../VirtualCardChk/stdafx.h
../public/sm3.h
../public/sm4.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/SM3.o ../public/SM3.cpp
../VirtualCardChk/temp/obj/StringUtil.o: ../public/StringUtil.cpp ../VirtualCardChk/stdafx.h
../public/sm3.h
../public/sm4.h
../public/StringUtil.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/StringUtil.o ../public/StringUtil.cpp
../VirtualCardChk/temp/obj/database.o: ../public/database.cpp ../VirtualCardChk/stdafx.h
../public/sm3.h
../public/sm4.h
../public/database.h
../public/Des.h
../public/md5.h
../public/json/json.h
../public/json/autolink.h
../public/json/config.h
../public/json/value.h
../public/json/forwards.h
../public/json/reader.h
../public/json/features.h
../public/json/writer.h
../public/base64.h
../public/httpsclient.h
../public/AES.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/database.o ../public/database.cpp
../VirtualCardChk/temp/obj/httpsclient.o: ../public/httpsclient.cpp ../VirtualCardChk/stdafx.h
../public/sm3.h
../public/sm4.h
../public/httpsclient.h
$(CURL_INCLUDE_PATH)/curl/curl.h
$(CURL_INCLUDE_PATH)/curl/curlver.h
$(CURL_INCLUDE_PATH)/curl/curlbuild.h
$(CURL_INCLUDE_PATH)/curl/curlrules.h
$(CURL_INCLUDE_PATH)/curl/easy.h
$(CURL_INCLUDE_PATH)/curl/multi.h
$(CURL_INCLUDE_PATH)/curl/typecheck-gcc.h
../public/database.h
../public/Des.h
../public/md5.h
../public/json/json.h
../public/json/autolink.h
../public/json/config.h
../public/json/value.h
../public/json/forwards.h
../public/json/reader.h
../public/json/features.h
../public/json/writer.h
../public/base64.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/httpsclient.o ../public/httpsclient.cpp
../VirtualCardChk/temp/obj/json_reader.o: ../public/json/json_reader.cpp ../public/json/reader.h
../public/json/features.h
../public/json/forwards.h
../public/json/config.h
../public/json/value.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/json_reader.o ../public/json/json_reader.cpp
../VirtualCardChk/temp/obj/json_value.o: ../public/json/json_value.cpp ../public/json/value.h
../public/json/forwards.h
../public/json/config.h
../public/json/writer.h
../public/json/json_batchallocator.h
../public/json/json_internalarray.inl
../public/json/json_internalmap.inl
../public/json/json_valueiterator.inl
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/json_value.o ../public/json/json_value.cpp
../VirtualCardChk/temp/obj/json_writer.o: ../public/json/json_writer.cpp ../public/json/writer.h
../public/json/value.h
../public/json/forwards.h
../public/json/config.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/json_writer.o ../public/json/json_writer.cpp
../VirtualCardChk/temp/obj/LogUtil.o: ../public/LogUtil.cpp ../public/LogUtil.h
../public/Util.h
../VirtualCardChk/stdafx.h
../public/sm3.h
../public/sm4.h
../public/base64.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/LogUtil.o ../public/LogUtil.cpp
../VirtualCardChk/temp/obj/JsonUtil.o: ../public/JsonUtil.cpp ../public/JsonUtil.h
../public/json/json.h
../public/json/autolink.h
../public/json/config.h
../public/json/value.h
../public/json/forwards.h
../public/json/reader.h
../public/json/features.h
../public/json/writer.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/JsonUtil.o ../public/JsonUtil.cpp
../VirtualCardChk/temp/obj/sm4.o: ../public/sm4.cpp ../VirtualCardChk/stdafx.h
../public/sm3.h
../public/sm4.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o ../VirtualCardChk/temp/obj/sm4.o ../public/sm4.cpp