我已经开始在基于Eclipse的Xilinx Vitis IDE中开发C语言软件。我的项目组织如下:
-Application
-Drivers
-drivers
-Adc
-Pwm
-Pwm.c
-Pwm.h
-Utils
-Bits.h
-Maths.h
所有目录,即应用程序,驱动程序和实用程序都通过“链接文件夹”选项链接到工作区中。我能够将Bits.h
包含到Pwm.c
中的唯一方法是在磁盘上指定Bits.h的完整路径。否则,编译器将报告fatal error: Bits.h: No such file or directory
。编译过程由自动生成的具有以下内容的makefile管理:
# Makefile generated by Xilinx.
PROCESSOR = ps7_cortexa9_0
LIBRARIES = ${PROCESSOR}/lib/libxil.a
BSP_MAKEFILES := $(wildcard $(PROCESSOR)/libsrc/*/src/Makefile)
SUBDIRS := $(patsubst %/Makefile, %, $(BSP_MAKEFILES))
ifneq (,$(findstring win,$(RDI_PLATFORM)))
SHELL = CMD
endif
all: libs
@echo 'Finished building libraries'
include: $(addsuffix /make.include,$(SUBDIRS))
libs: $(addsuffix /make.libs,$(SUBDIRS))
clean: $(addsuffix /make.clean,$(SUBDIRS))
$(PROCESSOR)/lib/libxil.a: $(PROCESSOR)/lib/libxil_init.a
cp -f $< $@
%/make.include: $(if $(wildcard $(PROCESSOR)/lib/libxil_init.a),$(PROCESSOR)/lib/libxil.a,)
@echo "Running Make include in $(subst /make.include,,$@)"
$(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=arm-none-eabi-gcc" "ASSEMBLER=arm-none-eabi-as" "ARCHIVER=arm-none-eabi-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -nostartfiles -g -Wall -Wextra -g3 -O0"
%/make.libs: include
@echo "Running Make libs in $(subst /make.libs,,$@)"
$(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=arm-none-eabi-gcc" "ASSEMBLER=arm-none-eabi-as" "ARCHIVER=arm-none-eabi-ar" "COMPILER_FLAGS= -O2 -c" "EXTRA_COMPILER_FLAGS=-mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -nostartfiles -g -Wall -Wextra -g3 -O0"
%/make.clean:
$(MAKE) -C $(subst /make.clean,,$@) -s clean
clean:
rm -f ${PROCESSOR}/lib/libxil.a
很明显,我的“解决方案”是不可接受的。因此,我想请教您如何正确解决此问题的建议。预先感谢您的任何建议。
您可以将包含路径添加到项目。这些是编译器将在其中搜索包含文件的路径。应当找到包含路径列表中目录之一中的任何包含文件;包含文件时,您无需指定其路径。
在Xilinx环境中如何执行此操作似乎取决于项目的设置方式。
如果是托管make项目:
属性-> C / C ++构建在“工具设置”选项卡中,选择“包含路径”
如果是标准make项目:
属性-> C / C ++包含路径和符号] >>
然后“添加外部包含路径”
请参阅this documentation了解更多详细信息,屏幕截图等。>
注意:我根据文档回答;我自己还没有使用过此IDE。