QT中生成静态的qcustomplotb静态库
首先找到F:\Win\QCustomPlot 源码目录 , 要有

=
这样子的结构 说明是正确的
,然后添加一个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) 收藏 举报
浙公网安备 33010602011771号