Конечная цель состоит в том, чтобы конечные пользователи/администраторы могли устанавливать параметры программы с помощью комбинации переключателей CLI (то есть "--foo=31 --bar=0"
) и/или конфигурационных файлов (то есть). Этот язык является C++, хотя многие из них не очень значительны. Цель - GNU/Linux на чем угодно: от ARMv6 (Raspberry Pi) до x86_64.Рекомендуемый подход к настройке Config/Prefs
Существует два очевидных решения: запись парсеров argc/v и conf файлов с использованием стандартных стандартных функций библиотеки; OR, используя существующую библиотеку, такую как libconfig. Моя предыдущая практика заключалась в том, чтобы всегда использовать библиотеки, а не изобретать колеса; но это первый раз, когда я нацелен на встроенные платформы. Это заставляет меня задаться вопросом, перерасход отходов и риск ошибок, связанных с почерком, этот код перевешивает преимущества меньшего количества зависимостей и возможного меньшего кода.
Вопрос тогда в этом случае, что делать? И есть ли правила, используемые при оценке выбора между библиотекой vs roll-your-own для мультиплатформенного кода?
Я экспериментировал с boost :: program_options и с json (поскольку я ненавижу XML). Boost на любом нормальном дистрибутиве GNU/Linux-ARM/MIPS работает хорошо. Boost на Android/Linux кажется сложной задачей. Я просматриваю некоторые пакеты на FDroid, чтобы узнать, какие общие библиотеки. Я считаю, что вы предлагаете, что «использование существующих пакетов всегда полезно» в сочетании с поиском активных мультиплатформенных библиотек - это путь. Благодарю. – justinzane