从源

时间:2016-05-08 13:27:26

标签: libusb juce

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

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

然而,最好包含libusb来源,这样任何使用我的代码的人都不需要额外的步骤来编译.lib并摆弄JUCE&#39 ; s build settings。

因此,在文件标签中我right click the root project folder -> "add existing files"并选择/PathTo/MyProj/libusb/libusb/

然而,在Xcode中打开它,有几个文件报告:

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

即使在.c中禁用非OSX /libusb/libusb/os/文件,.c中有几个/libusb/libusb/文件需要此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更多多平台友好/os/windows*.c#ifdef MSVC_BLAH ... #endif的内容只是为了让整个事物在没有事先摆弄的情况下编译在每个平台上。

1 个答案:

答案 0 :(得分:2)

这可能非常棘手 - 我已经通过尝试include GLib and Fluidsynth within a JUCE project以你正在谈论的非常类似的方式来了解这一点。

如果您正在尝试创建此跨平台,则会遇到很多问题,因为库所依赖的某些系统头文件可能不可用,或者可能需要额外的配置来设置。 / p>

肯定有这样做的方法,其中大部分都需要在Pre-Build Shell脚本中添加大量内容,并为Projucer添加正确的库和标题路径。

更简单的方法可能就是将安装程序与他们可以运行的项目打包在一起。它实际上和它们构建和制作相同;自己安装,但非常简单。

I went ahead and did this for you here

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

如果您在构建源代码时遇到困难,那么您还需要添加任何config.h文件 - 您可能需要编辑它们才能使它们成功编译。

另外,请记住LibUSB已获得LGPL许可。如果您完全编辑源代码并直接在应用程序中使用它,则还需要在LGPL许可证下发布应用程序的源代码。只需链接到库就可以解决这个问题。