首页 > 解决方案 > make:系统找不到指定的文件(错误2)

问题描述

我正在尝试在 Windows 上编译一个 C 程序以在 linux 开发板上使用。当我尝试使用 makefile 进行编译时,我得到以下输出:

$ make
arm-linux-gnueabihf-gcc -g -Wall main.c -o filetest
process_begin: CreateProcess(NULL, arm-linux-gnueabihf-gcc -g -Wall main.c -o filetest, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [filetest] Error 2

filetest无论在同一目录中是否存在名为的空白文件,都会发生这种情况。如果它存在,我可以运行make clean,它会删除该文件。这是我正在使用的makefile:

#
TARGET = filetest
ALT_DEVICE_FAMILY ?= soc_cv_av
SOCEDS_ROOT ?= $(SOCEDS_DEST_ROOT)
HWLIBS_ROOT = $(SOCEDS_ROOT)/ip/altera/hps/altera_hps/hwlib
CROSS_COMPILE = arm-linux-gnueabihf-
CFLAGS = -g -Wall -D$(ALT_DEVICE_FAMILY) -I$(HWLIBS_ROOT)/include/$(ALT_DEVICE_FAMILY) -I$(HWLIBS_ROOT)/include/
LDFLAGS = -g -Wall
CC = $(CROSS_COMPILE)gcc
ARCH= arm

build: $(TARGET)

#
$(TARGET):main.c

    $(CC) $(LDFLAGS) $^ -o $@

%.o : %.c

    $(CC) $(CFLAGS) -c $< -o $@

.PHONY: clean

clean:

    rm -f $(TARGET) *.a *.o *~

我在我的实际生成文件中使用了制表符,而不是上面的代码块的空格 ^^ 另外,我正在英特尔的 FPGA SoC EDS 中为 Cyclone V 板工作。

标签: clinuxmakefilecross-compiling

解决方案


推荐阅读