Проект JUCE, который собирает libusb из исходников

Я хочу создать проект JUCE, использующий libusb.

Я могу скомпилировать 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

Даже если отключить файлы .c, отличные от OSX, в /libusb/libusb/os/, в /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 просто для того, чтобы все это компилировалось на каждой платформе без предварительной возни.


person P i    schedule 08.05.2016    source источник


Ответы (1)


Это может быть очень сложно — я узнал об этом из первых рук, пытаясь включить GLib и Fluidsynth в проект JUCE. очень похоже на то, о чем вы говорите.

Вы столкнетесь с множеством проблем, если попытаетесь сделать это кроссплатформенным, поскольку некоторые системные заголовочные файлы, на которые опирается библиотека, могут быть недоступны или могут потребовать дополнительной настройки для настройки.

Определенно есть способы сделать это, большинство из которых будет включать в себя добавление множества вещей в сценарий предварительной сборки, а также добавление правильных путей к библиотекам и заголовкам в Projucer.

Гораздо проще упаковать установщик вместе с вашим проектом, который он сможет запустить. По сути, это то же самое, что и их сборка и установка самостоятельно, но очень просто и легко.

Я сделал это для вас здесь.

Вы можете просто распространять LibUSB.pkg в своем проекте. Недостатком этого является то, что вам потребуются предварительно созданные двоичные файлы для каждой платформы, но для простого приложения Windows/Mac/Linux/iOS/Android это не так уж сложно сделать.

Если вы жестко настроены на сборку с исходным кодом, вам также потребуется добавить любые файлы config.h — возможно, вам придется отредактировать их, чтобы они успешно скомпилировались.

Также имейте в виду, что LibUSB имеет лицензию LGPL. Если вы вообще редактируете исходный код и используете его непосредственно в своем приложении, вам также потребуется опубликовать исходный код вашего приложения под лицензией LGPL. Простое подключение к библиотеке устраняет эту проблему.

person Chris Penny    schedule 26.05.2016