Bazel сборка не работает в папке с не ASCII (японскими) символами

Вопрос или проблема

Я использую English Mint21 с Bazel 7.1.0.

Если я собираю простой проект hello-world на C++ в папке с японскими символами, я получаю ошибку –

/tmp/ワーク:$ bazel build //...
Запускаю локальный сервер Bazel и подключаюсь к нему...
ОШИБКА: Текущий каталог клиента '/tmp/ワーク' не находится внутри рабочего пространства '/tmp/???'
/tmp/ワーク:$ 

Я не уверен, что точное содержимое BUILD и т. д. имеет значение, так как ошибка возникает на очень раннем этапе.

Я поищал и нашел проблему, зарегистрированную в 2017 году, но тикет был закрыт без исправления: https://github.com/bazelbuild/bazel/issues/2550

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

Спасибо.

Ответ или решение

Чтобы решить проблему с использованием Bazel в каталогах с не-ASCII символами, такими как японские символы, необходимо рассмотреть несколько аспектов, поскольку это может быть связано как с самой конфигурацией Bazel, так и с настройками окружения.

Шаг 1: Убедитесь, что путь к рабочей области правильный

Ошибка, которую вы получаете, указывает на то, что Bazel не может правильно идентифицировать рабочую область из-за символов в пути. Убедитесь, что вы находитесь в правильной директории и что сама директория действительно содержит рабочую область Bazel (файл WORKSPACE). Попробуйте использовать абсолютный путь к рабочей директории:

cd /absolute/path/to/your/ワーク
bazel build //...

Шаг 2: Настройки локали

Проблема может быть связана с конфигурацией локали вашего терминала. Убедитесь, что у вас правильно установлены переменные окружения для локали. Для этого выполните:

locale

Если вывод содержит значения, отличные от UTF-8, попробуйте установить локаль в UTF-8. Например, можно добавить в .bashrc или .bash_profile следующие строки:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

После этого загрузите изменения:

source ~/.bashrc

Шаг 3: Версия Bazel

Вы используете Bazel 7.1.0, однако, возможно, стоит попробовать обновить до самой последней версии. В последних версиях могут быть исправлены ошибки, связанные с кодировкой и поддержкой не-ASCII символов. Используйте следующую команду для обновления:

bazelisk update

Если bazelisk еще не установлен, вы можете установить его, следуя инструкциям на официальном сайте Bazelisk.

Шаг 4: Использование символов ASCII

Если ни один из вышеизложенных шагов не работает, временным решением может быть использование каталога с именем, содержащим только ASCII символы. Это можно сделать следующим образом:

  1. Создайте каталог с ASCII символами, например workspace.
  2. Переместите ваш проект с японскими символами в новый каталог и попробуйте выполнить сборку снова:
mv /tmp/ワーク /tmp/workspace
cd /tmp/workspace
bazel build //...

Шаг 5: Обратитесь к сообществу или отчету об ошибках

Если проблема продолжается, вы можете обратиться к сообществу Bazel или создать новый отчет об ошибке на GitHub. Обязательно укажите детали вашей системы, версию Bazel, а также пошаговое описание того, что вы сделали, чтобы лучше помочь разработчикам.

Заключение

Следуя указанным шагам, вы сможете устранить проблему с ошибками в Bazel, связанными с не-ASCII символами. Если возникнут дополнительные вопросы, пожалуйста, не стесняйтесь задавать их.

Оцените материал
Добавить комментарий

Капча загружается...