从源代码构建 libusb 的 JUCE 项目

JUCE project that builds libusb from source

我希望创建一个使用 libusb 的 JUCE 项目。

我可以编译 libusb 并使用 ProJucer 添加它。我想我还必须包括 libusb.h。我希望我们能成功。

然而,如果包含 libusb 源代码会非常好,这样任何使用我的代码的人都不需要额外的步骤来编译 .lib 和摆弄 JUCE 的构建设置.

所以在“文件”选项卡中我 right click the root project folder -> "add existing files" 和 select /PathTo/MyProj/libusb/libusb/

但是在 Xcode 中打开它,几个文件报告:

#include <config.h> // ! not found

即使禁用 /libusb/libusb/os/ 中的非 OSX .c 文件,/libusb/libusb/ 中仍有几个 .c 文件需要此 config.h.

Googling,看来这需要一个/ hello it hello yeah sure Shona I'm great yeah we can go outside I guess really nice okay great and if it ever is three of them and please split over two days and it's too much of my voice Is any problem my voice is the week okay great so when when would you like me to come round okay 3 o'clock I can do integrity by.configure脚本才能运行.

这变得有点尴尬了。我想从现在开始我只是要编译 .lib 并完成它。

但是有没有整合的可能呢?

我认为 libusb 团队可以使 libusb 更加多平台友好,例如#ifdef MSVC_BLAH ... #endif/os/windows*.c 的内容只是为了让整个东西在每个平台上编译而无需事先摆弄。

这可能非常棘手 — 我通过尝试以与您所说的非常相似的方式 include GLib and Fluidsynth within a JUCE project 亲身了解了这一点。

如果您尝试这样做 cross-platform,您将 运行 遇到很多问题,因为库所依赖的某些系统 header 文件可能不会可用或可能需要额外配置才能设置。

肯定有很多方法可以做到这一点,其中大部分涉及向 Pre-Build Shell 脚本添加大量内容,以及添加正确的库和 header 路径Projucer.

一个更简单的方法可能是将安装程序与您的项目打包在一起 运行。这与让他们自己构建和安装它实际上是一样的,但是非常简单易行。

I went ahead and did this for you here.

您可以在您的项目中分发 LibUSB.pkg。这样做的缺点是每个平台都需要 pre-built 二进制文件,但对于一个简单的 Windows/Mac/Linux/iOS/Android 应用程序来说,这并不难做到。

如果您 hard-set 使用源代码构建,您还需要添加任何 config.h 文件 — 您可能需要编辑它们才能成功编译。

此外,请记住 LibUSB 已获得 LGPL 许可。如果您完全编辑源代码并直接在您的应用程序中使用它,您还需要根据 LGPL 许可发布您的应用程序的源代码。只需链接到库即可消除此问题。