Некоторые версии редактора статических ссылок ld на Mac не разрешают косвенные зависимости через опцию -L, а вместо этого просто ищут их через имя_установки, которое встраивается в прямую зависимость. Запуск otool -L на boost_filesysten покажет вам, где ld ищет boost_system.
Вы можете изменить имя_установки с помощью install_name_tool или использовать
-dylib_file имя_установки: имя_файла
опция для ld, которая является просто способом указать ld, что всякий раз, когда он сталкивается с путем install_name, соответствующим части аргумента перед двоеточием, он должен фактически получить эту библиотеку из пути после двоеточия.
Я думаю, что новые версии ld теперь уважают -L для косвенных зависимостей на Mac, но я не уверен. Я использовал только 10.4, у которого был ld, игнорирующий -L для косвенных зависимостей, и я использовал -dylib_file, чтобы избавиться от множества фантомных явных зависимостей, которые другие люди вставили, чтобы обойти ту проблему, которую вы описываете!