Dear All,
I got “Import is not defined” message from Pylance in my extra_scripts for a C++ project. Below is the content of platformio.ini and script.py: I could not figure out what was happening and how to fix it. Help is appreciated.
[platformio]
default_envs =
debug
[env]
extra_scripts = script.py
[env:debug]
build_flags =
${env.build_flags}
-D DEBUG
The content of the script.py is as follows:
Import("env")
# General options that are passed to the C and C++ compilers
env.Append(CCFLAGS=[])
# General options that are passed to the C compiler (C only; not C++).
env.Append(CFLAGS=[])
# General options that are passed to the C++ compiler
env.Append(CXXFLAGS=["-Wno-deprecated-declarations",
"-Wno-register",
"-Wno-pmf-conversions"])
The Pylance
is correct. It has no idea about SCons construction library. Please ignore this warning.
1 Like
I thought the problem had been solved by ignoring the warning. However, the CXXFLAGS I specify in the script.py does not work. The compile emits a lot of warnings that should have been disabled in the “script.py.” Any idea? Below is part of the warning message.
/home/ev/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_rtc.h:1293:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
1293 | register uint32_t temp = 0U;
Since this is in the framework package, you gotta add those options to the global construction environment, not just env
.
See documentation.
I modified the script as below, but it does nothing to the warning messages…
from SCons.Script import (DefaultEnvironment)
env = DefaultEnvironment()
# General options that are passed to the C and C++ compilers
env.Append(CCFLAGS=[])
# General options that are passed to the C compiler (C only; not C++).
env.Append(CFLAGS=[])
# General options that are passed to the C++ compiler
env.Append(CXXFLAGS=["-Wno-deprecated-declarations",
"-Wno-register",
"-Wno-pmf-conversions"])
The problem has been fixed by adding “pre:” in front of extra_scripts of the platformio.ini file as below:
[env]
extra_scripts = pre:script.py