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 file
usb-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的主要内容,如果未能解决你的问题,请参考以下文章
CUDA、Win7、Qt Creator - LNK1104:无法打开文件“<cuda 文件>.obj”
使用 qt creator 和 eigen 库编译程序时出现 lnk2019 错误