Я смотрю сейчас модно конфигурировать поведение библиотек через переменные окружения. Например: http://www.mesa3d.org/envvars.html Меня смущает сам факт того, что библиотека лезет в окружение, оно не детерминировано и может быть произвольным в момент запуска программы, которая эту библиотеку испльзует. С другой стороны это удобно т.к. при необходимости аффектит все приложения, полинкованные с либой.
Хорошо было бы, чтобы клиентский код конфигурил библиотеку в момент ее инициализации, но это крайне не удобно т.к. нужно выносить конфигурацию в саму клиентскую программу.
Какие еще методы передачи конфигурации в библиотеки посоветуете?