Имел неосторожность упомянуть, что использую Visual Studio (VS.NET 2003) в связке с msp430-gcc в этой теме
http://electronix.ru/forum/index.php?showtopic=71057. Попросили отписаться здесь о конвертации вывода msp-gcc в вид, перевариваемый студией...
Итак есть два пути - первый проще, но не самый правильный, второй немного сложнее. В обоих вариантах используется редактор sed из комплекта msys.
Итак вариант 1. В скрипте make (обычно makefile) добовляем строку (одной строкой!!!):
Код
PP = 2> $(OUTDIR)/errors.txt; sed -e's/:\([0-9]*\):\([0-9]*:\)* warning:/(\1) : warning: /' -e's/:\([0-9]*\):/(\1) : error: /' $(OUTDIR)/errors.txt
затем правим вызовы GCC, например было:
Код
@$(CC) -c $(CPFLAGS) -I$(INCDIR) $< -o $(OUTDIR)/$(@F)
стало
Код
@$(CC) -c $(CPFLAGS) -I$(INCDIR) $< -o $(OUTDIR)/$(@F) $(PP)
собственно все

. Недостаток - теперь в make возвращается код возврата не GCC, а SED. Соответственно даже при наличии ошибок в программе работа make не прерывается (что иногда может создавать трудности). Также следует отметить, что в каталоге с объектными файлами создается временный файл errors.txt.
Вариант 2.
Вызываем GCC через следующий скрипт:
Код
#!/bin/sh
if $* 2> Debug/errors.txt
then
exit 0
#успешно!!!
else
sed -e's/:\([0-9]*\):\([0-9]*:\)* warning:/(\1) : warning: /' -e's/:\([0-9]*\):/(\1) : error: /' Debug/errors.txt >&2
exit 1
#были ошибки
fi
Вызов оформляется в makefile следующим образом (rungcc.sh это имя скрипта):
Код
CC = ./rungcc.sh msp430-gcc
затем используем эту переменную например так:
Код
###### automatically generate dependencies ################
makefile.d : $(SRC) $(ASRC) $(ICONSHDR) $(FONTSHDR)
@echo "Updating dependencies..."
@$(CC) $(MCU) -E -MM -I$(INCDIROS) $(SRC) $(ASRC) > $(OUTDIR)/makefile.d.tmp
@$(RN) $(OUTDIR)/makefile.d.tmp makefile.d
или так:
Код
###### Instructions to compile C source files ######
%.o : %.c
@echo "Compiling $<"
@$(CC) -c $(CPFLAGS) -I$(INCDIR) $< -o $(OUTDIR)/$(@F)
В процессе работы скрипта создается временный файл errors.txt в каталоге Debug (там же где студия создает Buildlog.htm).
Второй вариант я использую с GCC для АРМов (но с msp430-gcc тоже будет работать).
makefilы у меня сделаны так, что посмотрев на окно вывода можно подумать, что MSVC собирает что-то свое :-)
P.S. надеюсь как настроить Visual Studio все знают?
P.P.S. make очень мощное средство, поэтому если Вы еще не изучили его (и не научились писать скрипты для него) очень советую это сделать...
Сообщение отредактировал Шаманъ - Dec 23 2009, 13:42