Как сделать кросс-компиляцию C ++ для aarch64 на компьютере x64 с bazel - PullRequest
0 голосов
/ 14 января 2020

Когда я пытаюсь сделать это с моим проектом, я использую что-то вроде в этом уроке , чтобы использовать другой набор инструментов, но я немного перегружен различиями, и это также может показаться излишним.

Итак, возвращаясь к основам, давайте попробуем кросс-компилировать hello-world с Bazel 1.1.0

Моя первая наивная попытка выглядит примерно так:

 $ bazel build --cpu=aarch64 //main:hello-world

, выдавая следующую ошибку:

ERROR: /nobackup/marholme/bazel_output_user_root/afdd37b9192d409b599cd579e697b897/external/local_config_cc/BUILD:47:1: in cc_toolchain_suite rule @local_config_cc//:toolchain: cc_toolchain_suite '@loc
al_config_cc//:toolchain' does not contain a toolchain for cpu 'aarch64'

Хорошо, мне нужно создать цепочку инструментов для процессора aarch64. Обратите внимание, я немного ленив здесь и знаю о платформах и о том, как их можно использовать в этом контексте. Если я определю платформу с процессором aarch64, произойдет нечто подобное.

В этот момент я чувствую, что, возможно, я мог бы следовать инструкциям здесь , но мы уже знаем, что cc_toolchain существует поэтому следует использовать эти документы и туториал, упомянутый ранее. Это когда я начинаю запутываться. CROSSTOOL ничего не значит для меня, и мне трудно, по крайней мере, мне сказать, что осуждается и что предлагается. У меня есть все необходимые инструменты aarch64 (включая g cc), но я не уверен, как позволить Bazel использовать их. Итак, мой вопрос:

Используя cc_toolchain или иным образом, каков минимальный набор изменений, чтобы я мог создать цепочку инструментов, которая будет работать?

...