Как использовать двоичный выход проекта Car go в качестве входа другого? - PullRequest
0 голосов
/ 29 апреля 2020

Чтобы уменьшить размер исполняемой программы Rust (в моем коде это называется runtime), я пытаюсь сжать ее, а затем включить во вторую программу (называемую szl), которая распаковывает и выполняет ее. .

Я сделал это с помощью Car go сценария сборки в szl, который открывает двоичный файл вывода из runtime, сжимает его, а затем генерирует файл, который готов к использованию include_bytes!.

Проблема этого подхода заключается в том, что зависимости не обрабатываются должным образом. Например, Car go может попытаться собрать szl до runtime (и потерпеть неудачу), а когда исходный код runtime изменен, szl не перестраивается.

Есть ли способ сообщить Car go, что szl зависит от двоичного файла из runtime (и транзитивно от исходного кода runtime), или я должен использовать другой подход, такой как внешний Makefile?

1 Ответ

0 голосов
/ 29 апреля 2020

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

Перед тем, как go предпринять такие меры c, возможно, стоит попробовать другие известные стратегии уменьшения двоичного размера ржавчины (например, вызывая полосу, удалить символы отладки, LTO, panic = abort). и др c.

...