QT中生成静态的qcustomplotb静态库

首先找到F:\Win\QCustomPlot  源码目录 ,  要有

 

image

 =00b3d931-7441-4c9e-aeb8-a175cd890adb

 这样子的结构  说明是正确的

 

,然后添加一个qcustomplot.pro文件  文件内容如下:;

TEMPLATE = lib
CONFIG += staticlib debug
CONFIG -= shared

QT += core gui widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += printsupport

SOURCES += qcustomplot.cpp
HEADERS += qcustomplot.h


INCLUDEPATH += F:/Win/QCustomPlot
LIBS += -LF:/Win/QCustomPlot/debug -lqcustomplotd

# 必须在最后执行,确保覆盖 Qt mkspecs 的设置
win32-msvc {
# 彻底覆盖 Qt 默认 -MDd 和 -MD,强制使用静态运行时库
# Debug 配置:将 -MDd 替换为 -MTd
QMAKE_CFLAGS_DEBUG = $$replace(QMAKE_CFLAGS_DEBUG, "-MDd", "-MTd")
QMAKE_CXXFLAGS_DEBUG = $$replace(QMAKE_CXXFLAGS_DEBUG, "-MDd", "-MTd")
# 确保包含 -MTd(如果替换失败,直接添加)
!contains(QMAKE_CXXFLAGS_DEBUG, "-MTd"): QMAKE_CXXFLAGS_DEBUG += -MTd
!contains(QMAKE_CFLAGS_DEBUG, "-MTd"): QMAKE_CFLAGS_DEBUG += -MTd
QMAKE_LFLAGS_DEBUG += /NODEFAULTLIB:MSVCRTD

# Release 配置:将 -MD 替换为 -MT
QMAKE_CFLAGS_RELEASE = $$replace(QMAKE_CFLAGS_RELEASE, "-MD", "-MT")
QMAKE_CXXFLAGS_RELEASE = $$replace(QMAKE_CXXFLAGS_RELEASE, "-MD", "-MT")
# 确保包含 -MT(如果替换失败,直接添加)
!contains(QMAKE_CXXFLAGS_RELEASE, "-MT"): QMAKE_CXXFLAGS_RELEASE += -MT
!contains(QMAKE_CFLAGS_RELEASE, "-MT"): QMAKE_CFLAGS_RELEASE += -MT
QMAKE_LFLAGS_RELEASE += /NODEFAULTLIB:MSVCRT
}

然后在开始菜单中打开Qt 5.7 32-bit for Desktop (MSVC 2013)  这种命令

假设源码目录在F:\Win\QCustomPlot文件下

cd /d F:\Win\QCustomPlot

再输入

"D:\VS2013\VS2013-pack\VS2013\VC\vcvarsall.bat" x86

后面输入

qmake qcustomplot.pro CONFIG+=debug

特别注意   生成的Makefile.Debug  一定要注意吧MDd改为MTd  要不然生成的就是动态的库

 

最后nmake /f Makefile.Debug

 

 

有时候需要nmake /f Makefile.Debug clean  清理一下

 

posted on 2026-01-14 11:48  longjiajia  阅读(2)  评论(0)    收藏  举报

导航