Насколько переносимым является GLib?

Я знаю, что этот вопрос может показаться странным, потому что GLib - это библиотека переносимости, но насколько она переносима? Чтобы назвать один пример: работает ли GLib (включая GObject) на микроконтроллерах или зависит от какой-либо операционной системы?

Существуют ли какие-либо ограничения на то, где я могу использовать GLib, или он будет работать везде, где можно запустить C-код?

Ответ 1

Единственный ресурс, который я смог найти в зависимости от зависимостей GLib:

Компиляция пакета GLib

Посмотрите раздел "Зависимости" - необязательные зависимости выглядят следующим образом:

  • A iconv функция
  • Функция A gettext
  • Реализация потоковой передачи
  • библиотека PCRE

Это означает, что вам нужно будет предоставить (или порт) каждый из них, независимо от того, какая целевая система (например, микроконтроллер). Хотя это не непреодолимый барьер, реализация потоковой передачи обычно подразумевает некоторую форму операционной системы.

Также стоит отметить, что GLib, похоже, зависит от среды "Hosted" C, поэтому вам также потребуется иметь стандартную библиотеку C, перенесенную в целевую среду (в отличие от "Free-Stand" C среда, поднабор стандарта C не требует, чтобы стандартная библиотека C была перенесена). См. Хостинг и свободное пространство. Опять же, это обобщение подразумевает по крайней мере очень базовую форму операционной системы.