Я точно не знаю, что я сделал, но, похоже, я сломал свою систему сборки.Как проследить, какой файл вызывает синтаксическую ошибку?
$ scons install
scons: Reading SConscript files ...
File "<string>", line 1
I_���.�K
H�4����Ǐ��U)�f���R�f���ў�U)�f���R�f���ў�
^
SyntaxError: invalid syntax
Непризнанные символы предназначены.
Плохо: Даже сброс на «известную как рабочую» версию не помогает, а также использует такие параметры, как --debug=stacktrace
. Моя система управления версиями (mercurial) не показывает изменений в файлах SCons
, и я не знаю, как это сделать. Любые намеки, как сделать mercurial печатать имена файлов, над которыми он работает, чтобы узнать, что происходит?
Следующим шагом будет сделать новый клон проекта (который, мы надеемся, построит), но мне любопытно, что здесь не так.
UPDATE
Проблема исчезла, когда я обновлен до Ubuntu 12.04. «Исчезновение» означает в этом случае, что внезапно я смог выполнить команду scons --clean
, после чего мне снова удалось перестроить проект. К сожалению, я не могу воспроизвести ошибку, так что, наконец, я не знаю, что вызвало ее, потому что она работала несколько месяцев, и ни у кого из моих коллег не было такой странной ошибки.
Это отрывок из моего сценария:
vars = Variables("variables.cache")
vars.Add("CXX", "use this c++ compiler", "/usr/bin/g++")
# (other stuff added to vars)
env = Environment(variables = vars) # <-- this line caused the error
В неприятности фиксации этого у меня сложилось впечатление, что после обновления, Python был в состоянии дать мне лучшее сообщение об ошибке и сообщение было (пытаясь вспомнить это), что vars
в некотором роде недействителен. Так что, может быть, проблема была в variables.cache
, я не знаю. Может быть, я должен просто удалить этот файл (который я не сделал), чтобы избавиться от ошибки.
Почему предназначены нецензурные символы? – Brady
Извините за то, что вы не нашли лучших слов. Я имею в виду: они появились в терминале, не было никаких печатных ошибок, сделанных мной здесь, на SO, которые скрывают полезную строку кода. Похоже, что scons пытались разобрать двоичный файл или некоторые такие? –