【问题标题】:Use libusb in a MacOS GUI application在 MacOS GUI 应用程序中使用 libusb
【发布时间】:2021-10-07 18:10:38
【问题描述】:

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

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

$ swift package init --type system-module

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

// swift-tools-version: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 ' >shim.h

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

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

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

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

【问题讨论】:

    标签: swift libusb swiftpm


    【解决方案1】:

    github下载libusb并将其复制到您的项目文件夹中。

    libusb/Xcode中的libusb.xcodeproj拖入您的项目中。

    创建桥接头文件:

    #include "libusb.h"
    

    更新:

    添加标题搜索路径:

    【讨论】:

    • 感谢您的回答,但看起来我仍然无法构建它。我将 libusb 从 GitHub 复制到我的项目并将 libusb.xcodeproj 拖到我的项目中 - 看起来我可以构建 libusb。接下来我创建了 project-bridging-header.h 并添加了包含。但是当我尝试构建我的项目时,它总是给我“找不到 libusb.h 文件”。
    • 你添加了header搜索路径吗?
    【解决方案2】:

    感谢您的帮助!

    桥接头需要包含#include

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

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

    【讨论】:

      猜你喜欢
      • 2011-11-20
      • 2017-06-16
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多