Ответ 1
Стандарт, который я знаю, сначала ищет параметр командной строки, если не найдена среда var, а затем локальный файл конфигурации, а затем глобальный файл конфигурации.
Поэтому, когда пакет установлен где-то. Он будет иметь конфигурационный файл по умолчанию. Это можно изменить с помощью локального файла конфигурации. Который может быть переопределен параметром окружения, а параметр командной строки имеет самый высокий приоритет.
Если в командной строке объявлен конфигурационный файл, то его содержимое будет иметь приоритет над параметрами среды или любыми другими конфигурационными файлами. Но параметры командной строки будут иметь приоритет над ним. Но помните, что путь поиска все еще существует. Если пакет ищет var, он ищет.
Command line.
Config file thats name is declared on the command line.
Environment vars
Local config file (if exists)
Global config file (if exists)
Я думаю, что многие компиляторы командной строки и библиотека конфигурации Boost config работают аналогичным образом