Vitis: 使用自定义IP时 Makefile错误 导致编译报错

发布于:2025-04-13 ⋅ 阅读:(23) ⋅ 点赞:(0)

参考文章:

【小梅哥FPGA】 Vitis开发中自定义IP的Makefile路径问题解决方案

Vitis IDE自定义IP Makefile错误(arm-xilinx-eabi-gcc.exe: error: *.c: Invalid argument)解决方法

        Vitis 使用自定义IP时: Makefile 文件里的语句是需要修改的,如果不修改,当包含该 IP 的硬件(xsa)文件导出 到 vitis 后,对 vitis 工程进行编译就会报错,报错信息为“xxx.h: No such file or directory”。因此需要在使用该 IP前 就完成修改 , 确保导出.xsa文件时 IP Makefile已做修改 (若在使用未修改的IP导出的.xsa文件情况下,再做修改仍然会报错!!!)

解决方法:

        在 IP 所在路径:...\custom_ip\ip_repo\breath_led_ip_1.0\drivers\breath_led_ip_v1_0\src 目录下找到Makefile文件:

修改后Makefile代码如下:

COMPILER=
ARCHIVER=
CP=cp
COMPILER_FLAGS=
EXTRA_COMPILER_FLAGS=
LIB=libxil.a

RELEASEDIR=../../../lib
INCLUDEDIR=../../../include
INCLUDES=-I./. -I${INCLUDEDIR}

INCLUDEFILES=$(wildcard *.h)
LIBSOURCES=$(wildcard *.c *.cpp)
OUTS =*.o

OBJECTS = $(addsuffix .o, $(basename $(wildcard *.c *.cpp)))
ASSEMBLY_OBJECTS = $(addsuffix .o, $(basename $(wildcard *.S)))

libs:
	echo "Compiling myip"
	$(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES)
	$(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OBJECTS} ${ASSEMBLY_OBJECTS}
	make clean

include:
	${CP} $(INCLUDEFILES) $(INCLUDEDIR)

clean:
	rm -rf ${OBJECTS} ${ASSEMBLY_OBJECTS}