我必须将 Eclipse 用于我要添加和修改的现有 C 项目,但我无法弄清楚如何设置包含路径,所以我不必做这样的事情:
#include "../other_folder/foo.h"
我已经进入:
项目属性 | C/C++ 通用 |路径和符号
并选择包含选项卡。
然后为语言选择了 GNU C,然后添加了相对路径。因此,例如,将 /other_folder 添加到包含路径列表中。
但是,我仍然需要在源代码中输入标头的相对路径。
我是否要求 Eclipse 在期望能够添加这些路径并能够做到的事情上无法做到:
#include "foo.h"
而不是
#include "../other_folder/foo.h"
在任何源文件中?
我什至尝试在项目包含中放置绝对路径,而不是相对路径,但这也不起作用。更奇怪的是 Eclipse 给出了一条消息,即相对路径不明确!
我见过这个:
Eclipse can't find header file, even though include paths are set
但他的解决方案与此无关,我看不到那个扳手。我浏览了其他类似的帖子,但在其中找不到任何指出我做错了什么的内容。
如果我不将路径放在特定问题的源代码中,则编译器输出的示例如下:
Info: Compiling Registers/registers.c to obj/default/Registers/registers.o
nios2-elf-gcc -xc -MP -MMD -c -I../USB3_Controller_BSP//HAL/inc -I../USB3_Controller_BSP/ -I../USB3_Controller_BSP//drivers/inc -pipe -D__hal__ -DALT_NO_INSTRUCTION_EMULATION -DALT_USE_SMALL_DRIVERS -DSMALL_C_LIB -DALT_SINGLE_THREADED -O -g -Wall -mno-hw-div -mhw-mul -mhw-mulx -mgpopt=global -o obj/default/Registers/registers.o Registers/registers.c
Registers/registers.c:2:22: fatal error: pc_comms.h: No such file or directory
我认为 -I 是包含路径,这表明它只是没有看到我添加的包含路径。也不确定双正斜杠。例如:
/USB3_Controller_BSP//drivers/inc
这看起来很奇怪。
最重要的是,如果我从包含路径中删除所有条目,它会一直告诉我有一整套无效路径,例如:
Description Resource Path Location Type
Invalid project path: Include path not found (/home/me/Software/company/USB_Controller_Software/software/USB3_Controller/USB3_Controller/comms). USB3_Controller pathentry Path Entry Problem
有人对我做错了什么有任何建议吗?我怀疑我在 Eclipse 设置包含路径的方式中遗漏了一些基本的东西。
(请不要尝试目录命名和文件命名的混合风格,这不是我做的!)
FWIW 在 Linux 上为 NIOS 使用 Mars.2。