2016-05-08 17 views
1

Ich möchte ein JUCE-Projekt erstellen, das libusb verwendet.JUCE-Projekt, das libusb aus der Quelle erstellt

Ich kann libusb kompilieren und es mit ProJucer hinzufügen. Ich nehme an, ich müsste auch libusb.h einschließen. Und ich hoffe, dass wir es schaffen.

Aber es wäre wirklich nett, stattdessen die libusb Quelle zu enthalten, so dass jeder, der meinen Code verwendet, den zusätzlichen Schritt des Kompilierens eines .lib und herumfummeln mit JUCE Build-Einstellungen nicht benötigt.

So in Registerkarte Dateien I right click the root project folder -> "add existing files" und wählen /PathTo/MyProj/libusb/libusb/

dies in Xcode up jedoch öffnen, mehrere Dateien berichten:

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

Auch Nicht-OSX .c Dateien in /libusb/libusb/os/ gibt es ein paar .c deaktivieren Dateien in /libusb/libusb/, die diese config.h erfordern.

Googling, scheint es, dass dies erfordert ein / 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 Skript ausgeführt werden muss.

Dies wird alles ein bisschen peinlich. Ich denke, ab jetzt werde ich einfach die .lib kompilieren und damit fertig sein.

Aber gibt es eine Möglichkeit einer integrierten Lösung?

Ich könnte mir vorstellen, die libusb Team könnte libusb mehr Multiplattform-freundlich z. der Inhalt von /os/windows*.c innerhalb #ifdef MSVC_BLAH ... #endif nur so, dass das Ganze auf jeder Plattform kompiliert ohne vorher zu fummeln.

Antwort

2

Dies könnte sehr schwierig sein - ich habe dies aus erster Hand erfahren, indem Sie versuchen, include GLib and Fluidsynth within a JUCE project in einer sehr ähnlichen Weise, über die Sie sprechen.

Wenn Sie versuchen, diese plattformübergreifende Version zu erstellen, werden Sie viele Probleme bekommen, da bestimmte Systemheaderdateien, auf die die Bibliothek angewiesen ist, möglicherweise nicht verfügbar sind oder eine zusätzliche Konfiguration erfordern.

Es gibt definitiv Möglichkeiten, dies zu tun, von denen die meisten das Hinzufügen von viel Zeug zum Pre-Build Shell Script sowie das Hinzufügen der richtigen Bibliothek und Header-Pfade zum Projucer beinhalten würde.

Eine viel einfachere Methode könnte sein, einfach ein Installationsprogramm mit Ihrem Projekt zu paketieren. Es ist effektiv das gleiche wie sie zu bauen & selbst installieren, aber ist sehr einfach und einfach.

I went ahead and did this for you here.

Sie könnten einfach LibUSB.pkg in Ihrem Projekt verteilen. Der Nachteil ist, dass Sie für jede Plattform vordefinierte Binärdateien benötigen, aber für eine einfache Windows/Mac/Linux/iOS/Android-App ist dies nicht zu schwer zu tun.

Wenn Sie mit dem Quellcode hart arbeiten, müssen Sie auch alle config.h-Dateien hinzufügen - Sie müssen sie möglicherweise bearbeiten, damit sie erfolgreich kompiliert werden können.

Denken Sie auch daran, dass LibUSB LGPL lizenziert ist.Wenn Sie den Quellcode überhaupt bearbeiten und direkt in Ihrer App verwenden, müssen Sie den Quellcode Ihrer App ebenfalls unter der LGPL-Lizenz veröffentlichen. Durch einfaches Verknüpfen mit der Bibliothek wird dieses Problem behoben.