Ошибка окружения: нет инструмента с именем ‘fastcpp’: не Zip-файл:

#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-коды)