从源代码构建libusb的JUCE项目



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

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

然而,如果能包含libusb源代码,那就太好了,这样任何使用我的代码的人都不需要额外编译.lib和篡改JUCE的构建设置。

因此,在文件选项卡I right click the root project folder -> "add existing files"中,选择/PathTo/MyProj/libusb/libusb/

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

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

即使在/libusb/libusb/os/中禁用非OSX .c文件,/libusb/libusb/中也有几个.c文件需要此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中,这样整个事情就可以在每个平台上编译,而无需事先进行篡改。

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

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

肯定有很多方法可以做到这一点,其中大多数方法包括向预构建外壳脚本添加大量内容,以及向Projucer添加正确的库和头路径。

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

我在这里为你做了这件事。

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

如果您对使用源代码进行构建非常执着,那么您还需要添加任何config.h文件——您可能必须对它们进行编辑才能使它们成功编译。

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

最新更新