Qt Creator 链接器错误:LNK1104:无法打开 fil 'usb-1.0.lib' - Windows

Posted

技术标签:

【中文标题】Qt Creator 链接器错误:LNK1104:无法打开 fil \'usb-1.0.lib\' - Windows【英文标题】:Qt Creator linker error: LNK1104: cannot open fil 'usb-1.0.lib' - WindowsQt Creator 链接器错误:LNK1104:无法打开 fil 'usb-1.0.lib' - Windows 【发布时间】:2019-02-08 11:28:28 【问题描述】:

我正在尝试在 Windows 上的 QtCreator 上构建一个 Qt 项目(已经在 Ubuntu 上运行)。我想在调试模式下构建它,然后在发布模式下构建它,因为我希望将我的应用程序部署到 Windows。

第一次编译项目时,出现以下错误C1083: Cannot open include file 'libusb.h' no such file or directory。我通过将 libusb.h 文件从 E:\Qt\5.11.2\Src\qtwebengine\src\3rdparty\chromium\third_party\libusb\src\libusb 复制到我的编译器文件夹中解决了这个错误:E:\Qt\5.11.2\msvc2017_64\include

再次清理和编译项目后,我遇到了另一个错误,我找不到解决方案,即使我用谷歌搜索并尝试更改我的 .pro 文件的LIB += -lusb-1.0 行。这是错误:LNK1104: cannot open fileusb-1.0.lib`

这是我的项目文件:

QT += quick core
CONFIG += c++11
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
    main.cpp \
    readthread.cpp \
    passerelle.cpp

RESOURCES += qml.qrc
QML_IMPORT_PATH =
QML_DESIGNER_IMPORT_PATH =
qnx: target.path = /tmp/$$TARGET/bin
else: unix:!android: target.path = /opt/$$TARGET/bin
!isEmpty(target.path): INSTALLS += target

HEADER += \
    readthread.h \
    passerelle.h

LIBS += -lusb-1.0

我在 readthread.h 文件中调用#include <libusb.h>

您是否知道如何解决这个问题,为什么编译器会寻找usb-1.0.lib 而不是libusb-1.0.lib

我已经尝试从下载的Latest Windows Binary downloads 文件夹 (libusb-1.0.22\MS64\dll\libusb-1.0.lib) 复制 libusb-1.0.lib 文件,但它没有改变任何东西...

【问题讨论】:

只需使用LIBS += libusb-1.0.lib 我还是有同样的错误:/ 你有一个错误说无法打开usb-1.0.lib?您是否尝试过完整路径? 是的,我有完全相同的错误:LNK1104: cannot open file libusb-1.0.lib. By full path, you mean, write LIBS += E:\Qt\5.11.2\msvc2017_64\lib\libusb-1.0.lib` ? 嗯,好的,那我去看看 CMake,看看它是否能解决我的问题。一旦我用 CMake 尝试了一些东西,我就会回来:)。但我仍然不太明白为什么它在带有 QMake 的 Linux 上运行得非常好,但在 Windows 上却不行 【参考方案1】:

答案出现在上面的cmets中,不过这里我再写一遍: 我通过使用完整路径解决了它:LIBS+= E:\Qt\5.11.2\msvc2017_64\lib\libusb-1.0.lib。修改完成后,清理,运行 qmake 并构建项目。

【讨论】:

以上是关于Qt Creator 链接器错误:LNK1104:无法打开 fil 'usb-1.0.lib' - Windows的主要内容,如果未能解决你的问题,请参考以下文章

Qt-Creator 中 OpenCV 程序中的链接器错误

CUDA、Win7、Qt Creator - LNK1104:无法打开文件“<cuda 文件>.obj”

使用 qt creator 和 eigen 库编译程序时出现 lnk2019 错误

QT Creator - LNK2019 和 LNK1120 错误 [重复]

LNK1104 将 Boost 库添加到 Qt 项目时出错

链接:致命错误 LNK1104:无法打开文件 'ucrt.lib'