我正在运行通过 GitHub 提供的示例程序,最大运行时间为 780000fthr。我知道它可以工作,因为我的队友能够编译它 - 尽管它在闪存到微控制器上时不会成功工作。
无论如何,这不是重点,我在 make 命令时遇到问题,说我没有 python。我在同一目录中使用了 python 来测试 .py 文件,所以我确实安装了它并在我所在的位置工作 -
ive 甚至将 Mac 上的 zsh 路径更改为 Mac 上最新的 python,但“make”命令仍然存在问题。问题可能是什么?谢谢您的帮助!
运行“make”的输出:
annavladimirskaya@Annas-MacBook-Pro-6 mnist-riscv % vim test1.py
annavladimirskaya@Annas-MacBook-Pro-6 mnist-riscv % python test1.py
hello
annavladimirskaya@Annas-MacBook-Pro-6 mnist-riscv % python3 test1.py
hello
annavladimirskaya@Annas-MacBook-Pro-6 mnist-riscv % make
//Users/annavladimirskaya/Documents/mdsk/msdk/Libraries/CMSIS/Device/Maxim/GCC/gcc.mk:55: No Python installation detected on your system! Will not automatically update version info.
****************************************************************************
* Analog Devices MSDK
* v2024_02-149-gb9966ca6d8
* - User Guide: https://analogdevicesinc.github.io/msdk/USERGUIDE/
* - Get Support: https://www.analog.com/support/technical-support.html
* - Report Issues: https://github.com/analogdevicesinc/msdk/issues
* - Contributing: https://analogdevicesinc.github.io/msdk/CONTRIBUTING/
****************************************************************************
make[1]: arm-none-eabi-gcc: Command not found
- CC //Users/annavladimirskaya/Documents/mdsk/msdk/Libraries/CMSIS/../PeriphDrivers/Source/SYS/mxc_assert.c
make[2]: arm-none-eabi-gcc: No such file or directory
make[2]: *** [//Users/annavladimirskaya/Documents/mdsk/msdk/Libraries/PeriphDrivers/bin/MAX78000/spi-v1_softfp/mxc_assert.o] Error 1
make[1]: *** [//Users/annavladimirskaya/Documents/mdsk/msdk/Libraries/PeriphDrivers/bin/MAX78000/spi-v1_softfp/libPeriphDriver_spi-v1_softfp.a] Error 2
make: *** [arm] Error 2
生成错误的 makefile 部分:
ifeq "$(PYTHON_CMD)" ""
# Try python
ifneq "$(wildcard $(MAXIM_PATH)/.github)" ""
PYTHON_VERSION := $(shell python --version)
ifneq ($(.SHELLSTATUS),0)
PYTHON_CMD := none
else
PYTHON_CMD := python
endif
# Try python3
ifeq "$(PYTHON_CMD)" "none"
PYTHON_VERSION := $(shell python3 --version)
ifneq ($(.SHELLSTATUS),0)
PYTHON_CMD := none
else
PYTHON_CMD := python
endif
endif
# Export PYTHON_CMD so we don't check for it again unnecessarily
export PYTHON_CMD
endif
# Make sure script exists before running. This won't run when working in the official MSDK release (non-GitHub)
ifneq ("$(wildcard $(MAXIM_PATH)/.github)", "")
# Run script if exists.
ifneq "$(PYTHON_CMD)" "none"
UPDATE_VERSION_OUTPUT := $(shell python $(MAXIM_PATH)/.github/workflows/scripts/update_version.py)
else
$(warning No Python installation detected on your system! Will not automatically update version info.)
endif
endif
endif
ifneq "$(wildcard $(MAXIM_PATH)/Libraries/CMSIS/Device/Maxim/GCC/mxc_version.mk)" ""
include $(MAXIM_PATH)/Libraries/CMSIS/Device/Maxim/GCC/mxc_version.mk
endif
我看到两种可能性:您没有提供足够的信息让我们知道正确的一种。
首先,您确定 makefile 中没有任何内容正在重置
PATH
变量吗? 在我看来,提供给各种 shell 的 PATH
make 是不正确的。 正如评论中提到的,您遇到的最大问题是 make 找不到正确的编译器arm-none-eabi-gcc
;它与Python没有任何关系。
另一种可能是你没有说你的GNU Make是什么版本。 Apple 在他们的环境中提供了一个极其古老、破旧的 GNU Make 版本(3.81,于 2006 年发布)。
.SHELLSTATUS
变量是在 2016 年发布的 GNU Make 4.2 中引入的。如果您使用的是旧版本的 GNU Make,那么 .SHELLSTATUS
永远不会设置,这可能就是为什么 make 说您没有安装 Python。