Qt中创建的C++库如何直接生成DLL到总项目的bin文件中,以下代码为C++库的pro文件的内容
QT -= gui
QT += serialport
TARGET = IGTC
TEMPLATE = lib
DEFINES += IGTC_LIBRARY
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
# 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
#Following code is generate DLL files to "D:\build-CarDetectorV2-Desktop_Qt_5_14_2_MinGW_32_bit-Debug\bin" folder
DESTDIR = ../bin
SOURCES += \
atreceiverbuffer.cpp \
igtc.cpp
HEADERS += \
IGTC_global.h \
atreceiverbuffer.h \
igtc.h
# Default rules for deployment.
unix {
target.path = /usr/lib
}
!isEmpty(target.path): INSTALLS += target
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/./release/ -lIGTC
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/./debug/ -lIGTC
else:unix: LIBS += -L$$OUT_PWD/./ -lIGTC
INCLUDEPATH += $$PWD/.
DEPENDPATH += $$PWD/.
,其中有一行是起这个作用,那就是:
#Following code is generate DLL files to "D:\build-CarDetectorV2-Desktop_Qt_5_14_2_MinGW_32_bit-Debug\bin" folder
DESTDIR = ../bin
另外:
含有c++ library的Qt项目在debug编译时可以正常运行,改为release模式后,提示:找不到IGTC.DLL文件。
原因如下:因为在release/IGTC/release目录下找不到这个文件导致。
解决方案:从debug/IGTC/debug目录下拷贝IGTC.DLL到release/IGTC/release文件夹下,再编译即运行成功!
要想在发布文件夹下有IGTC.DLL文件,必须保证在ICTC/release文件夹下有该文件才能发布到bin文件夹下,否则不行!
秋风写于淄博,业务联系与技术交流:375172665