首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接器错误: Qt和libusb-win32

链接器错误: Qt和libusb-win32
EN

Stack Overflow用户
提问于 2011-10-12 11:43:21
回答 1查看 2.4K关注 0票数 1

我尝试开发一个Qt 应用程序,该应用程序将使用USB与板进行通信。我使用的库是libusb-Win32v1.2.5.0

当我编译应用程序时,会发生以下错误:

./debug/TU盘_USBComm.o:函数‘ZN15线程_usb_co15find_usb_deviceEtt’:

thread_usb_comm.cpp:15:对“usb_find_busses”的未定义引用

thread_usb_comm.cpp:16:对“usb_find_devices”的未定义引用

thread_usb_comm.cpp:18:对“usb_get_busses”的未定义引用

thread_usb_comm.cpp:26:对'usb_open‘collect2的未定义引用: ld返回了1个退出状态

mingw32-make1: debug/CALSYS11 11_杯_app.exe错误1

mingw32 32-make:调试错误2

应用程序代码是:

(头文件)

代码语言:javascript
复制
#ifndef THREAD_USB_COMM_H
#define THREAD_USB_COMM_H

#include <QThread>
#include <QtDebug>
#include "CALSYS11.h"
#include <lusb0_usb.h>

class thread_usb_comm : public QThread
{
    Q_OBJECT

public:
    thread_usb_comm();

private:
    bool device_connected;
    usb_dev_handle *p_usb_device;

    bool find_usb_device(
       unsigned short vendor_id,
       unsigned short product_id
    );
};

#endif // THREAD_USB_COMM_H

(源文件)

代码语言:javascript
复制
#include "thread_usb_comm.h"

thread_usb_comm::thread_usb_comm()
{
    device_connected = false;
}

bool thread_usb_comm::find_usb_device(
    unsigned short vendor_id,
    unsigned short product_id
)
{
    struct usb_bus *bus;
    struct usb_device *dev;
    usb_find_busses();
    usb_find_devices();

    for (bus = usb_get_busses(); bus; bus = bus->next)
    {
        for (dev = bus->devices; dev; dev = dev->next)
        {
            if ((dev->descriptor.idVendor == vendor_id) &&
                (dev->descriptor.idProduct == product_id))
            {
                qDebug ("Device found");
                p_usb_device = usb_open(dev);
                if (0 == p_usb_device)
                {
                    qCritical ("Could not open USB device");
                    return false;
                }
                device_connected = true;
                return true;
            }
        }
    }

    qDebug ("Cannot find specified device");
    return false;
}

我在.pro文件中添加了到libusb库的链接:

LIBS += -L\path\to\libusb-win32 32\lib\gcc -lusb

我是在Windows 7上开发的。

谢谢,

约翰恩

EN

回答 1

Stack Overflow用户

发布于 2011-10-12 23:03:53

尝试构建版本而不是调试,否则静态库与编译器版本不兼容(当我尝试用MinGW 4.4构建旧的静态库时,我也遇到了同样的问题)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7739538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档