首页 > 解决方案 > 在 MacOS GUI 应用程序中使用 libusb

问题描述

我正在尝试在带有 GUI 的 macOS 应用程序中使用 libusb。但我总是以“没有这样的模块'CLibUSB'”失败。我可以在命令行应用程序中使用 CLibUSB,但不能让它与 macOS GUI 应用程序一起使用。我做了什么:

  1. 冲泡安装 libusb
  2. $ mkdir Clibusb 和 $ cd Clibusb/
  3. 制作系统模块

$ swift package init --type 系统模块

  1. 编辑包清单 Package.swift 文件,使其看起来像这样

// 快速工具版本:5.1

import PackageDescription

  let package = Package(
    name: "Clibusb",
    pkgConfig: "libusb-1.0",
    providers: [
      .brew(["libusb"])
    ],
    dependencies: [
    // Dependencies declare other packages that this package depends on
    // .package(url: /* package url */, from: "1.0.0"),
    ]
  )
  1. 创建一个 C 垫片标头,

echo '#include <libusb.h>' >shim.h

  1. 编写模块图module.modulemap
  module CLibUSB [system] {
  header "shim.h"
  link "libusb-1.0"
  export *
}
  1. 创建一个 Git 存储库

混帐初始化
混帐添加。
git commit -m "初始提交"

  1. 制作客户端应用程序
mkdir LibUSBExample
cd LibUSBExample
swift package init --type executable
  1. 在 main.swift 的客户端应用程序中。我导入 CLibUSB 并进行一些测试 - 一切正常

如何在 GUI 应用程序中使用 CLibUsb?

标签: swiftlibusbswiftpm

解决方案


感谢你的帮助!

桥接头需要包含#include <libusb-1.0/libusb.h >

我必须正确设置Header Search Path = /usr/local/include 和Library Search Path = /usr/local/lib。

在框架、库等下。我还必须设置库 libusb-1.0.alibusb-1.0.0.dylib


推荐阅读