Qt/C++项目编译报错:i686-w64-mingw32/bin/ld.exe无法找到-lqwt
解决qmake链接时找不到-lqwt的问题
链接器依赖的不是DLL文件:你看到的
qwt.dll是运行时动态库,而编译链接阶段,MinGW的ld.exe需要的是导入库或静态库。对应MinGW环境的库文件命名应为libqwt.a(静态库)或libqwt.dll.a(动态链接的导入库),先检查C:\Users\ik\Documents\Projets\cap3600project\cap3600\ExternLibraries\lib目录下是否存在这两个文件之一。核对库文件的命名与编译环境:
- 如果目录里只有
qwt.lib,这是MSVC编译器的库格式,MinGW无法识别,需要重新编译QWT为MinGW版本,或者下载对应MinGW架构的预编译QWT库。 - 确认QWT的编译架构(32位/64位)和你当前项目匹配:你用的是32位MinGW(i686-w64-mingw32),如果QWT是64位编译的,链接器也会找不到库。
- 如果目录里只有
修正.pro文件中的路径写法:
- 路径中的反斜杠可能被解析为转义字符,建议换成斜杠,或者给路径加引号:
LIBS += -L"C:/Users/ik/Documents/Projets/cap3600project/cap3600/ExternLibraries/lib" -lqwt - 生成Makefile后,打开它搜索
LIBS字段,确认路径是否被正确解析,排除路径书写错误。
- 路径中的反斜杠可能被解析为转义字符,建议换成斜杠,或者给路径加引号:
尝试直接指定库文件:如果上述步骤无效,可以跳过
-lqwt的简写方式,直接把库文件的完整路径写入LIBS:LIBS += "C:/Users/ik/Documents/Projets/cap3600project/cap3600/ExternLibraries/lib/libqwt.dll.a"
内容的提问来源于stack exchange,提问作者yamilyana
相关产品推荐
相关产品推荐

