我使用Eclipse作为IDE来帮助我开发Arduino程序。我使用Arduino Makefile来构建我的项目并让Eclipse使用" external" makefile文件。 makefile非常深入,可以在构建过程中设置构建变量。但是,CDT错误突出显示错误突出显示错误,因为makefile设置了构建变量。有没有办法让Eclipse运行makefile然后解析输出以查看项目中是否有任何错误?
生成文件
BOARD_TAG = uno
MONITOR_PORT = /dev/ttyACM*
include $(ARDMK_DIR)/Arduino.mk
答案 0 :(得分:0)
据我所知,不!考虑到CDT托管make构建的递归性质,这将是一项相当重要的任务。您可以在 C / C ++ General-> Preprocessor Include Paths-> Entries-> GNU C-> CDT用户设置条目(视为内置条件)下定义预处理器符号。强>
提议的解决方案
实施例
我现在正在使用的主项目使用Eclipse-CDT-External-Makefile。我们有几个'CONFIG_DO_ABC'类型变量。我们生成一个config.h。这是一个简单的例子。
<强>生成文件强>
include config.mk
all:
./config.awk config.mk > config.h
gcc main.c -o main.o
clean:
rm -r *.o main
<强> config.mk 强>
CONFIG_A := 1
CONFIG_B := 2
CONFIG_C := 3
<强> config.awk 强>
#!/usr/bin/awk -f
BEGIN {
print "/* Generated by config.awk; do not edit */"
print "#ifndef CONFIG_H"
print "#define CONFIG_H"
}
$1 ~ /^CONFIG_/ && $2 ~ /^:?=$/ { print "#define", $1, $3 }
END { print "#endif" }
main.c(说明性示例)
#include "config.h"
int main (void) {
return CONFIG_A;
}
(制作控制台输出)
make all
./config.awk config.mk > config.h
gcc main.c -o main.o
这对我的用例非常有用,特别是#ifdef vars(例如#ifdef HALT_ON_BUG或其他东西)。
你必须使用比config.awk更复杂的脚本来使用字符串;但希望这足以开始。