Я использую apple gcc , чтобы скомпилировать dylib, который я собираюсь распространять. По разным причинам я использую некоторые библиотеки, скажем, libz
, чтобы сделать его простым.
Поскольку эта библиотека обычно отсутствует в системе Mac, я хочу, чтобы статическая ссылка в использовала символы в dylib, передавая путь к .a-file
для упрощения развертывания.
Теперь компоновщик связывает все символы из библиотеки в результирующий dylib, хотя я ссылаюсь только на подмножество. В Linux я никогда не сталкивался с этой проблемой, компоновщик с радостью отбрасывает все символы, на которые нет ссылок, и создает очень тонкий исполняемый файл, поэтому он должен быть возможным . Файл dylib, который у меня сейчас есть, примерно в 10 раз больше, чем должен.
Я пытался поиграться с флагом -dead_code, но безрезультатно. Возможно, я просто не понимаю этого?
Кто-нибудь знает решение этой проблемы?