#python #scons
#python #scons
Вопрос:
Я компилирую некоторый проприетарный код и пытаюсь создать образ. Здесь я получаю сообщение об ошибке
EnvironmentError: No tool named 'fastcpp': not a Zip file:
File ".../build/ms/target.scons", line 145:
env.Tool('ComSConstruct', toolpath = ['${BUILD_ROOT}/tools/build/scons/build'])
File "/usr/lib/scons/SCons/Environment.py", line 1786:
tool(self)
File "/usr/lib/scons/SCons/Tool/__init__.py", line 191:
self.generate(env, *args, **kw)
File ".../tools/build/scons/build/ComSConstruct.py", line 54:
env.LoadImageUnits(env.get('IMAGE_ROOT_DIR_PATTERNS'))
File "/usr/lib/scons/SCons/Environment.py", line 223:
return self.method(*nargs, **kwargs)
File ".../tools/build/scons/scripts/utils.py", line 1286:
load_sub_scripts(env, dir_patterns, script_name_patterns, "image", clone_env=True)
File ".../tools/build/scons/scripts/utils.py", line 1540:
node.load_scripts(script_list, script_type, clone_env=clone_env)
File ".../tools/build/scons/scripts/utils.py", line 1585:
env.SConscript(script, exports='env')
File "/usr/lib/scons/SCons/Script/SConscript.py", line 546:
return _SConscript(self.fs, *files, **subst_kw)
File "/usr/lib/scons/SCons/Script/SConscript.py", line 260:
exec _file_ in call_stack[-1].globals
File ".../bsp/devcfg/build/SConscript", line 312:
SetupDevCfgBuild(devcfg_env, aliases, 'devcfg')
File ".../bsp/devcfg/build/SConscript", line 103:
env.LoadToolScript('llvm', toolpath = ['${BUILD_SCRIPTS_ROOT}'])
File "/usr/lib/scons/SCons/Environment.py", line 223:
return self.method(*nargs, **kwargs)
File ".../tools/build/scons/scripts/utils.py", line 1268:
m.generate(env)
File ".../tools/build/scons/scripts/llvm.py", line 849:
env.Tool('fastcpp')
File "/usr/lib/scons/SCons/Environment.py", line 1785:
tool = SCons.Tool.Tool(tool, toolpath, **kw)
File "/usr/lib/scons/SCons/Tool/__init__.py", line 105:
module = self._tool_module()
File "/usr/lib/scons/SCons/Tool/__init__.py", line 165:
raise SCons.Errors.EnvironmentError(m)
Я скачал fastcpp отсюда, но не могу понять, как я могу его установить, поскольку у него есть некоторые файлы кода с расширениями .hpp.
Я уже успешно установил scons.
Кто-нибудь может объяснить, что такое fastcpp и как его использовать для исправления вышеуказанной ошибки?
ОБНОВЛЕНИЕ: 19/08/2020
У него есть ComSConstruct.py
модуль, расположенный по адресу '${BUILD_ROOT}/tools/build/scons/build'
, который по-прежнему выдает вышеуказанные ошибки.
Я заменил этот приведенный выше путь путем, в котором присутствуют файлы FastCpp. Теперь ошибка заменена на ComSConstruct
инструмент.
EnvironmentError: No tool named 'ComSConstruct': not a Zip file:
File ".../build/ms/target.scons", line 146:
env.Tool('ComSConstruct', toolpath = ['/home/tk/tools_used/FastCpp'])
File "/usr/lib/scons/SCons/Environment.py", line 1785:
tool = SCons.Tool.Tool(tool, toolpath, **kw)
File "/usr/lib/scons/SCons/Tool/__init__.py", line 105:
module = self._tool_module()
File "/usr/lib/scons/SCons/Tool/__init__.py", line 165:
raise SCons.Errors.EnvironmentError(m)
Комментарии:
1. .hpp — это заголовочные файлы для C , поэтому есть некоторые предпосылки, что вам может потребоваться скомпилировать инструмент перед его использованием. Можете ли вы предоставить немного больше информации? например, что это за вызов, который приводит к EnvironmentError? Куда вы поместили fastcpp? Что такое fastcpp, для тех из нас, кто не знает?
2. Откуда вы скачали инструмент SCons fastcpp? Приведенная выше ссылка не работает?
3. Обновлена ссылка. Я скачал zip-файл оттуда. @bdbaddog
4. @MatsWichmann полностью обновил ошибку выше. файлы fastcpp расположены по адресу
/home/tk/tools_used/FastCpp
.5. На самом деле не могу сказать намного больше из этого. «Не Zip-файл» происходит из Python, когда вы запрашиваете импортировать что-либо, он пытается получить это из zip-файла, если другие методы не помогли; все это означает, что попытка импортировать fastcpp не удалась. Мы все еще не знаем, что такое fastcpp (веб-сайт с одним пейджером только намекает), ни как вы пытаетесь его использовать.
Ответ №1:
Наконец, я нашел решение.
В проприетарном коде были некоторые исправления. Я получил исправления и применил их вручную.
Затем обновил clang 3.4 до clang 4.0, выполнив приведенные ниже команды. (Не удалось установить более высокие версии clang. Я думаю, вероятно, 14.0 не поддерживает более высокие версии.)
sudo apt-add-repository "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main"
sudo apt-get update
sudo apt-get install clang-4.0 lldb-4.0
Скомпилирован снова, и это сработало. 🙂
Ответ №2:
Вы должны удалить scon в вашем Linux. Эти скрипты используют локальную среду scons.
в кодах ошибок:
-> /usr/lib/scons
: у вас есть библиотека scons от apt-возможно, get install scons
-> если вы автоматически удаляете scons, а затем этот скрипт запускается в локальной среде scons в ../build/ms
(это могут быть Q-коды)