JUCE — это мощный инструмент для создания аудиоплагинов для цифровых звуковых рабочих станций (DAW). В состав библиотеки JUCE после ее загрузки входит Projucer, который представляет собой инструмент управления проектами. С помощью Projucer разработчики могут легко экспортировать свой код в различные интегрированные среды разработки (IDE) для создания и развертывания своих приложений. Однако при этом разработчики должны знать, что процесс связывания внешних библиотек с Projucer отличается от процесса использования только IDE.
Я обнаружил это трудным путем. Я решил использовать Projucer для экспорта своего проекта аудиоплагина в Xcode. Пытаясь подключить curl for cpp и base64 к своему проекту, я обнаружил, что он не собирается! Мне нужно было подключить обе эти библиотеки, чтобы иметь возможность использовать Dolby.io’s Media APIs в среде C++. Сначала я попытался добавить инструкции по сборке непосредственно в Xcode, но обнаружил, что настройки не сохраняются при каждом запуске проекта, и тогда я узнал, что Projucer обрабатывает все инструкции по сборке за вас.
Продолжайте учиться, чтобы узнать, как подключать внешние библиотеки к экспортеру Xcode с помощью Projucer!
Использование IDE в качестве экспортера в Projucer
Первый шаг — убедиться, что IDE, которую вы хотите использовать, добавлена в Projucer в качестве доступного экспортера. Я сосредоточусь на использовании Xcode, так как это IDE, которую я использую, но есть несколько других вариантов, включая Visual Studio.
Добавление экспортеров в новый проект JUCE
Для новых проектов отметьте IDE, которые вы будете использовать с JUCE, в меню настроек перед созданием проекта.
Добавление экспортеров в существующие проекты JUCE
Для существующих проектов откройте проект в Projucer и перейдите на боковую панель ‘Exporters’. Там выберите знак плюс внизу, чтобы добавить предпочитаемую IDE. Все настройки для подключения внешних библиотек должны быть одинаковыми для всех доступных IDE, но пока я тестировал этот процесс только в Xcode для MacOS.
Настройки сборки экспортера
После того как вы добавили нужную IDE, нажмите на ее название в боковой панели «Экспортер». Появившееся меню справа позволяет разработчикам настроить параметры сборки проекта после его экспорта (среди прочего). Ниже показано меню для Xcode MacOS.
Отсюда можно добавить флаги компилятора, флаги компоновщика, внешние библиотеки для компоновки и т.д.
Теперь, когда экспортер настроен, давайте приступим к линковке библиотек.
Пути поиска заголовков для внешних библиотек
Сначала необходимо добавить пути к файлам внешних библиотек, которые нужно скомпоновать.
1) Перейдите на вкладку ‘Exporter’ и нажмите на ‘Debug’.
2) В текстовом поле ‘Header Search Paths’ введите полный путь к файлу или перетащите файл, чтобы вставить путь к файлу. Чтобы добавить несколько путей, просто добавьте между ними новую строку.
3) Повторите шаг 2 на вкладке ‘Release’.
Укажите флаги компоновщика сборки в Projucer
Некоторые библиотеки, включая curl, требуют флагов компоновщика для правильной сборки с вашими проектами. Этим также занимается Projucer.
1) Щелкните на имени вашего экспортера
2) В текстовом поле с надписью ‘Extra Linker Flags’ напишите необходимые флаги. Для curl флаг будет ‘-lcurl’.
Проверьте настройки сборки в Xcode
Теперь нажмите кнопку экспорта в верхней части экрана, чтобы открыть ваш проект в нужной вам IDE. Если вы, как и я, используете Xcode, вы сможете увидеть флаги компоновщика, а также пути поиска заголовков, которые вы добавили в настройках сборки проекта.
Важно отметить, что причина, по которой нам не нужно вручную добавлять эти настройки сборки каждый раз, когда мы используем IDE, заключается в Projucer. Если бы вы попытались просто добавить эти настройки непосредственно в выбранную вами IDE, они не сохранились бы в экспортере, и вам пришлось бы каждый раз добавлять их вручную.
Выводы
Вот и все! Теперь, когда настройки сборки проекта были настроены в Projucer, они будут запускаться в вашей IDE каждый раз, когда вы экспортируете проект для работы. Теперь, когда у меня работают curl и base64, я интегрировал API Enhance от Dolby.io в JUCE для создания аудиоплагина.
Если вы хотите узнать больше об API Enhance, посмотрите, как его можно использовать без необходимости писать код с помощью Zapier, или узнайте больше о работе API от старшего научного сотрудника Dolby.io.
Удачного подключения внешних библиотек!