1

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

我可以libusb使用 ProJucer 编译和添加它。我想我还必须包括libusb.h. 我希望我们能做到这一点。

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

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

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

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

即使禁用非 OSX.c文件,/libusb/libusb/os/也有几个.c文件/libusb/libusb/需要这个config.h.

谷歌搜索,这似乎需要/ 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更适合多平台的放置,例如/os/windows*.c里面的内容,#ifdef MSVC_BLAH ... #endif这样整个东西就可以在每个平台上编译,而无需事先摆弄。

4

1 回答 1

2

这可能非常棘手——我通过尝试以与您所说的非常相似的方式将 GLib 和 Fluidsynth 包含在 JUCE 项目中来亲身了解这一点。

如果你试图让这个跨平台,你会遇到很多问题,因为库依赖的某些系统头文件可能不可用,或者可能需要额外的配置来设置。

肯定有办法做到这一点,其中大部分涉及向 Pre-Build Shell 脚本添加大量内容,以及向 Projucer 添加正确的库和头文件路径。

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

我在这里为你做了这件事

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

如果您很难使用源代码进行构建,那么您还需要添加任何 config.h 文件——您可能需要编辑它们以使它们成功编译。

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

于 2016-05-26T20:53:50.863 回答