Qwt静态库链接报错:ld.exe无法找到-lqwt的解决咨询
Qwt静态库链接报错解决方法
环境
- Qwt-6.3.0
- Qt6.9.0
- mingw1310_64
- Windows11
问题描述
已安装Qwt静态库,lib目录下存在libqwt.a(Release版静态库)和libqwtd.a(Debug版静态库)。运行示例项目simpleplot时,链接器报错:
ld.exe:-1: cannot find -lqwt: No such file or directory
直接在pro文件中添加静态库绝对路径后问题仍未解决:
LIBS += C:/dev/qwt/qwt-6.3.0/lib/libqwtd.a \ C:/dev/qwt/qwt-6.3.0/lib/libqwt.a
解决步骤
清除默认动态库链接:如果项目中引入了Qwt的pri文件(如
include($$QWT_INSTALL_DIR/lib/qwt.pri)),该文件会默认配置动态库链接规则,需先清除这些规则:LIBS -= -lqwt -lqwtd分模式指定静态库:Debug和Release模式需分别对应不同的静态库,避免同时链接导致冲突:
# 配置Qwt头文件路径 INCLUDEPATH += C:/dev/qwt/qwt-6.3.0/include # Debug模式链接Debug静态库 debug: LIBS += C:/dev/qwt/qwt-6.3.0/lib/libqwtd.a # Release模式链接Release静态库 release: LIBS += C:/dev/qwt/qwt-6.3.0/lib/libqwt.a验证静态库编译兼容性:确保Qwt静态库是使用Qt6.9.0 + mingw1310_64编译的,版本不匹配会导致链接失败。若自行编译Qwt,需确认编译时添加了静态配置:
qmake CONFIG+=static qwt.pro匹配构建套件:在Qt Creator中确认当前使用的构建套件(Kit)是
mingw1310_64 + Qt6.9.0,与编译Qwt的环境一致。清理重建项目:执行
Build > Clean All清除旧缓存,再执行Build > Rebuild All重新构建项目,避免旧配置残留。
内容的提问来源于stack exchange,提问作者Alain Weiler




