我制作了一个 Makefile 项目(新建 -> C 项目 -> Makefile 项目)。它可以正确编译。
但是语法检查器不能正常工作,因为 Eclipse 没有从 makefile 中导入一些重要的选项。-I(标题文件夹)例如。
如何解决这个问题呢?
Eclipse 使用您的 makefile 生成的构建输出来解析编译标志、包含路径、预定义的宏等。它期望您的构建系统回显它执行的每个命令。
也就是说,如果输出如下所示,它将不起作用make
:
[CC] foo.o
[CC] bar.o
[LD] baz
确保它打印原始命令,例如:
gcc -Ipath/to/include -DFOO=1 -O2 ... -o foo.o -c foo.c
gcc -Ipath/to/include ... -o bar.o -c bar.c
ld foo.o bar.o -o baz
一些构建工具提供了启用详细模式的选项(如make V=1
)。但是,手写的 makefile 通常是可以的,因为 Make 默认会回显执行的命令。
在这种情况下,Eclipse 将能够识别构建选项(如path/to/include
或FOO=1
)并使用它们来设置 C/C++ 索引器。
配置项目:
之后,您需要从 Eclipse 内部执行新的构建(Clean Project,然后是Build Project),以便它会看到完整的构建日志。
这个功能相当脆弱,有时会被破坏......通常它有助于使用Project -> Index -> Rebuild刷新索引。