当我在main.cpp中包括uhd/usb_control.hpp时:

#include <uhd/transport/usb_control.hpp>

/* Some other includes */

int main (void)
{
    uhd::transport::usb_control::sptr usbSpeed;

    usbSpeed = uhd::transport::usb_control::make(handle, 0);
    /* `handle` is a `usb_device_handle::vid_pid_pair_t` */
}


我从here收到错误消息:

static sptr make(usb_device_handle::sptr handle, const int interface);

错误:
意外的 token 结构。您是否忘记了“;”
struct:缺少标签名称

还有另一个奇怪的错误:

usbSpeed = uhd::transport::usb_control::make(handle, 0);

错误:
无法将参数2从int转换为const int
我发现uhd::transport::usb_control::make的唯一实现是uhd/transport/usb_dummy_impl.cpp,它仅引发异常。



如何解决这些错误?我只是要检测一下USRP usb类型。为此,我阅读了uhd源代码,并找到了uhd / transport / usb_control.hpp,但是我遇到了这些错误。

最佳答案

如您所提到的#include <uhd/transport/usb_control.hpp>之外,您还包括其他一些内容,这可能是导致此意外行为的原因与您包含的文件以及其中一些文件之间的冲突有关。我建议将这个包含行移到其他包含的上下行,然后再次测试您的代码。

希望我的建议有用。

关于c++ - 如何检测USRP USB类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59929272/

10-10 07:25