Ошибка recipe for target main o failed

I am currently failing to write a good makefile and don’t know the reason why.. -.-

This is my main.c:

#include <windows.h>
#include <stdio.h>

int main(int argc, char *argv[])
{ 
   printf("MEEEEEP");
   return (0);
}

This is my makefile:

# make SYSTEM= OS= ENVIRONMENT=
# Binaries to use
ifeq ($(ENVIRONMENT),MINGW)
  CXX   = i686-pc-mingw32-g++
else
  CXX   = g++
endif
REMOVE  = rm -vf

RC      = windres
EXE     = .exe

#############################################################
# Info

ifeq ($(CXX),g++)
INFO_CXX = g++ -dumpversion; g++ -dumpmachine
endif

#############################################################
# Flags

DEBUG = -DDEBUG -g
OPTIMIZATION = -O2 #-Winline -finline-functions

CFLAGS = -Wall -Wextra -W -static $(DEBUG) $(OPTIMIZATION) -D$(SYSTEM) -D$(OS) -D$(ENVIRONMENT) $(PRGFLAGS)

ifeq ($(SYSTEM),I686)
  CFLAGS   += -m32

  ifeq ($(OS),WIN32)
    CFLAGS += -D_WIN32 
  endif

  ifeq ($(ENVIRONMENT),MINGW)
    CFLAGS += -fexceptions 
  endif
endif

 LFLAGS    = 

#############################################################
# Files

CFILES      = main.c
OBJS        = ${CFILES:.c=.o}

#############################################################
# Include

INCLUDES      = -I.

#############################################################
# Library

LIBRARIES     = 

#############################################################
# Targets
.PHONY: all
all:    
    @echo == Standard build: make SYSTEM=I686 OS=WIN32 ENVIRONMENT=MINGW
    @echo
    @echo 
    make SYSTEM=I686 OS=WIN32 ENVIRONMENT=MINGW gyro

#############################################################
# Implicit rules and filename extensions... 
.SUFFIXES: .h .o .c

.c.o:     %.h
      @echo Compiling $< for $(SYSTEM) $(OS) $(ENVIRONMENT) ...
      @echo MEEP
      $(CXX) $(CFLAGS) $(INCLUDES) -c $< -o $@
      @echo MEEP2

#############################################################
# Target rules
gyro: $(OBJS)
      @echo Building software for $(SYSTEM) ...
      @echo
      $(CXX) $(CFLAGS) $(LFLAGS) -o $@$(EXE) $(OBJS) $(LIBRARIES)

#############################################################
# Clean
.PHONY: clean
clean:
    $(REMOVE) $(OBJS)


#############################################################
# Info
.PHONY: info
info:
    @echo 
    @echo Information about C++ Compiler/Linker:
    @echo 
    $(INFO_CXX)

When i type in make gyro,
i receive the output:

Compiling main.c for Windows_NT ...
MEEP
g++ -Wall -Wextra -W -static -DDEBUG -g -O2  -D -DWindows_NT -D  -I. -c main.c -o     main.o
makeNew.mak:83: recipe for target `main.o' failed
make: *** [main.o] Error 1

But Line number 83 is behind .c.o: %.h. And i don’t understand why.
Does anyone have a solution for me?

nik-el

0 / 0 / 0

Регистрация: 04.06.2018

Сообщений: 16

1

05.06.2018, 16:10. Показов 20743. Ответов 16

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Помогите разобраться где косяк
Atmel Studio 7 выдает сообщения (из 18 ошибок остались 2) , в том числе: recipe for target ‘main.o’ failed
по двум кликам перехожу из main.c в makefile, в строку <<===<

C
1
2
3
4
5
./%.o: .././%.c
        @echo Building file: $<                    <<===<
        @echo Invoking: AVR/GNU C Compiler : 5.4.0
        $(QUOTE)C:Program Files (x86)AtmelStudio7.0toolchainavr8avr8-gnu-toolchainbinavr-gcc.exe$(QUOTE)  -x c -funsigned-char -funsigned-bitfields -DDEBUG  -I"C:Program Files (x86)AtmelStudio7.0PacksatmelATtiny_DFP1.3.172include" -I"../Config" -I"../examples/include" -I"../include" -I"../utils" -I"../utils/assembler" -I".." -I"../documentation" -I"../qtouch" -I"../qtouch/datastreamer" -I"../qtouch/include"  -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=attiny1616 -B "C:Program Files (x86)AtmelStudio7.0PacksatmelATtiny_DFP1.3.172gccdevattiny1616" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"   -o "$@" "$<" 
        @echo Finished building: $<

м.б. удалить этот » makefile» ?
ведь в Atmel Studio 7 он кажется не нужен

Добавлено через 5 часов 25 минут
А я не слишком сложный вопрос задал?



0



0 / 0 / 0

Регистрация: 04.06.2018

Сообщений: 16

07.06.2018, 14:20

 [ТС]

2

аууу!!!
есть кто разбирается Atmel Studio 7?



0



1280 / 1186 / 175

Регистрация: 02.12.2013

Сообщений: 4,884

07.06.2018, 14:49

3

Atmel Studio 7 автоматически генирит makefile и лезть в него не понимая для чего он нужен и что в нем написано совсем не нужно. Пере создайте проект и запустите отладку в симуляторе, будут ошибки компилятора выкладывайте здесь.



1



1976 / 1275 / 130

Регистрация: 04.01.2010

Сообщений: 4,607

08.06.2018, 14:15

5

gcc (это компилятор такой) выкладывает стек ошибок при выполнении задачи makefile.
то есть задача сборки проекта собирает исходники в объектники, подключает библиотеки и линкует. В эту задачу входит сборка ваших исходников, которые не понял компилятор и завалился.

Вот и получается, ошибки «посыпались», одна, рождая другую. Исправьте ошибки в исходниках, и возможно все ваши остальные сложности отпадут за ненадобностью.



1



0 / 0 / 0

Регистрация: 04.06.2018

Сообщений: 16

09.06.2018, 14:10

 [ТС]

6

спасибо, я это уже понял, читаю доки на С++ и ищу где накосячил



0



1280 / 1186 / 175

Регистрация: 02.12.2013

Сообщений: 4,884

09.06.2018, 14:34

7

Для AVR лучше писать на чистом СИ



0



0 / 0 / 0

Регистрация: 04.06.2018

Сообщений: 16

13.06.2018, 09:26

 [ТС]

8

в Atmel Studio 7 вроде как С++ используется, так почему бы не воспользоваться его ++ми



0



1280 / 1186 / 175

Регистрация: 02.12.2013

Сообщений: 4,884

13.06.2018, 10:22

9

Потому что не зная тонкостей работы компилятора плюсов, Вы можете значительно увеличить размер программы и снижения быстродействия. На ПИ СИ это не очень страшно, а вот в AVR памяти мало



0



0 / 0 / 0

Регистрация: 04.06.2018

Сообщений: 16

13.06.2018, 11:47

 [ТС]

10

я в курсе и взял МК с запасом тини1616, но сейчас важнее запустить проект, а оптимизацией можно будет заняться и после, «если что»



0



0 / 0 / 0

Регистрация: 04.06.2018

Сообщений: 16

18.06.2018, 11:46

 [ТС]

11

в другой моей теме написал «регулярно запинаюсь из-за разных подходов(в примерах) в программировании на С / С++ и для разных сред и за разные годы издания фирменной документации»
короче, попадалово с этими примерами, лучше свой код писать



0



296 / 227 / 102

Регистрация: 11.08.2016

Сообщений: 780

24.06.2018, 14:37

12

nik-el, лог ошибок в студию



0



0 / 0 / 0

Регистрация: 13.04.2017

Сообщений: 41

06.12.2019, 01:05

13

У меня проблема один к одному, как у автора этой темы — nik-el. Хотя перечитал и выполнил все советы — проблему не решил.

Коротко повторюсь. В новый проект (С/С++) Atmel Studio 7 загрузил пример на простом С отсюда.

Уменьшил количество ошибок до 2-х:
Error recipe for target ‘main.o’ failed
Error too few arguments to function ‘uart_init’

Что делать дальше не знаю.
Во вложении — код main.c, лог сборки и скрин Atmel Studio 7.

Где копать? Заранее благодарю за помощь.

Миниатюры

Recipe for target 'main.o' failed
 



0



593 / 356 / 67

Регистрация: 21.09.2008

Сообщений: 1,223

07.12.2019, 20:46

14

Реализация функции uart_init() где?



0



0 / 0 / 0

Регистрация: 13.04.2017

Сообщений: 41

08.12.2019, 11:10

15

Цитата
Сообщение от sharpey
Посмотреть сообщение

Реализация функции uart_init() где?

В библиотеке uart.h: void uart_init(void);
Больше тут.



0



Модератор

Эксперт по электронике

8809 / 6592 / 894

Регистрация: 14.02.2011

Сообщений: 23,178

08.12.2019, 14:14

16

Цитата
Сообщение от cadil_cib
Посмотреть сообщение

В библиотеке uart.h: void uart_init(void);

это не реализация, это объявление
и файлы с расширением .h никогда библиотеками не являлись, это файлы расширения(заголовочные файлы)



0



0 / 0 / 0

Регистрация: 13.04.2017

Сообщений: 41

16.12.2019, 12:56

17

Решение проблемы есть тут.



0



How can I fix an error «recipe for target ‘main.o’ failed» at Dev C++

Here is a code I wrote

#include <stdio.h>

main()
{
    printf("Hello World");
}

yeah fully basic

and this is makefile.

# Project: Project2
# Makefile created by Dev-C++ 5.11

CPP      = g++.exe
CC       = gcc.exe
WINDRES  = windres.exe
OBJ      = main.o
LINKOBJ  = main.o
LIBS     = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc
INCS     = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include"
CXXINCS  = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++"
BIN      = Project2.exe
CXXFLAGS = $(CXXINCS)
CFLAGS   = $(INCS)
RM       = rm.exe -f

.PHONY: all all-before all-after clean clean-custom

all: all-before $(BIN) all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ)
$(CC) $(LINKOBJ) -o $(BIN) $(LIBS)

main.o: main.c
$(CC) -c main.c -o main.o $(CFLAGS)

How can I fix this problem?

Archived post. New comments cannot be posted and votes cannot be cast.

I got this error while trying to compile blynk-library/linux

raspberrypi2$ git clone https://github.com/blynkkk/blynk-library.git
Cloning into 'blynk-library'...
remote: Counting objects: 2832, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 2832 (delta 0), reused 0 (delta 0), pack-reused 2828
Receiving objects: 100% (2832/2832), 494.34 KiB, done.
Resolving deltas: 100% (1674/1674), done.
raspberrypi2$ cd blynk-library/linux/
raspberrypi2$ make clean all target=raspberry
rm main.o BlynkDebug.o ../utility/BlynkHandlers.o blynk
rm: cannot remove `main.o': No such file or directory
rm: cannot remove `BlynkDebug.o': No such file or directory
rm: cannot remove `../utility/BlynkHandlers.o': No such file or directory
rm: cannot remove `blynk': No such file or directory
Makefile:62: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
g++ -I ../ -I ./ -DLINUX -c -O3 -w -DRASPBERRY main.cpp -o main.o
In file included from ./BlynkSocket.h:25:0,
                 from main.cpp:17:
../Blynk/BlynkProtocol.h: In member function ‘bool BlynkProtocol<Transp>::connect(uint32_t)’:
../Blynk/BlynkProtocol.h:55:13: error: there are no arguments to ‘yield’ that depend on a template parameter, so a declaration of ‘yield’ must be available [-fpermissive]
../Blynk/BlynkProtocol.h:55:13: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
Makefile:68: recipe for target 'main.o' failed
make: *** [main.o] Error 1
raspberrypi2$

I fixed this with editing blynk-library/linux/Makefile

raspberrypi2$ diff blynk-library/linux/Makefile-ORIGINAL blynk-library/linux/Makefile-EDITED
48c48
<       CFLAGS += -DRASPBERRY

---
>       CFLAGS += -DRASPBERRY -fpermissive

Explanation about this flag can be found here
http://stackoverflow.com/questions/8843818/what-does-the-fpermissive-flag-do

The compilation process is now OK

raspberrypi2$ make clean all target=raspberry
rm main.o BlynkDebug.o ../utility/BlynkHandlers.o blynk
rm: cannot remove `main.o': No such file or directory
rm: cannot remove `BlynkDebug.o': No such file or directory
rm: cannot remove `../utility/BlynkHandlers.o': No such file or directory
rm: cannot remove `blynk': No such file or directory
Makefile:62: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
g++ -I ../ -I ./ -DLINUX -c -O3 -w -DRASPBERRY -fpermissive main.cpp -o main.o
g++ -I ../ -I ./ -DLINUX -c -O3 -w -DRASPBERRY -fpermissive BlynkDebug.cpp -o BlynkDebug.o
g++ -I ../ -I ./ -DLINUX -c -O3 -w -DRASPBERRY -fpermissive ../utility/BlynkHandlers.cpp -o ../utility/BlynkHandlers.o
g++ main.o BlynkDebug.o ../utility/BlynkHandlers.o -lrt -lpthread -s -lwiringPi -o blynk
raspberrypi2$

Форум РадиоКот • Просмотр темы — Ошибка recipe for target ‘main.o’ failed Atmel Studio7

Сообщения без ответов | Активные темы

ПРЯМО СЕЙЧАС:

Автор Сообщение

Не в сети

Заголовок сообщения: Ошибка recipe for target ‘main.o’ failed Atmel Studio7

СообщениеДобавлено: Пн мар 21, 2022 16:15:47 

Нашел транзистор. Понюхал.

Карма: -1

Рейтинг сообщений: -10

Зарегистрирован: Ср янв 11, 2012 11:55:51
Сообщений: 197

Рейтинг сообщения: 0

Не собирается проект. Ошибку recipe for target ‘main.o’ failed. Makefile выглядит так:

Если кто-то может разъяснить, в чем может быть причина — буду очень благодарен.
Изображение

Вернуться наверх
 

ПрофильПрофиль

 

Реклама

Land

Не в сети

Заголовок сообщения: Re: Ошибка recipe for target ‘main.o’ failed Atmel Studio7

СообщениеДобавлено: Ср мар 23, 2022 11:32:09 

Нашел транзистор. Понюхал.

Карма: -1

Рейтинг сообщений: -10

Зарегистрирован: Ср янв 11, 2012 11:55:51
Сообщений: 197

Рейтинг сообщения: 0

Собственно проблема оказалась в подключении #include. Тема закрыта.

Вернуться наверх
Реклама

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти к контенту

I am currently failing to write a good makefile and don’t know the reason why.. -.-

This is my main.c:

#include <windows.h>
#include <stdio.h>

int main(int argc, char *argv[])
{ 
   printf("MEEEEEP");
   return (0);
}

This is my makefile:

# make SYSTEM= OS= ENVIRONMENT=
# Binaries to use
ifeq ($(ENVIRONMENT),MINGW)
  CXX   = i686-pc-mingw32-g++
else
  CXX   = g++
endif
REMOVE  = rm -vf

RC      = windres
EXE     = .exe

#############################################################
# Info

ifeq ($(CXX),g++)
INFO_CXX = g++ -dumpversion; g++ -dumpmachine
endif

#############################################################
# Flags

DEBUG = -DDEBUG -g
OPTIMIZATION = -O2 #-Winline -finline-functions

CFLAGS = -Wall -Wextra -W -static $(DEBUG) $(OPTIMIZATION) -D$(SYSTEM) -D$(OS) -D$(ENVIRONMENT) $(PRGFLAGS)

ifeq ($(SYSTEM),I686)
  CFLAGS   += -m32

  ifeq ($(OS),WIN32)
    CFLAGS += -D_WIN32 
  endif

  ifeq ($(ENVIRONMENT),MINGW)
    CFLAGS += -fexceptions 
  endif
endif

 LFLAGS    = 

#############################################################
# Files

CFILES      = main.c
OBJS        = ${CFILES:.c=.o}

#############################################################
# Include

INCLUDES      = -I.

#############################################################
# Library

LIBRARIES     = 

#############################################################
# Targets
.PHONY: all
all:    
    @echo == Standard build: make SYSTEM=I686 OS=WIN32 ENVIRONMENT=MINGW
    @echo
    @echo 
    make SYSTEM=I686 OS=WIN32 ENVIRONMENT=MINGW gyro

#############################################################
# Implicit rules and filename extensions... 
.SUFFIXES: .h .o .c

.c.o:     %.h
      @echo Compiling $< for $(SYSTEM) $(OS) $(ENVIRONMENT) ...
      @echo MEEP
      $(CXX) $(CFLAGS) $(INCLUDES) -c $< -o $@
      @echo MEEP2

#############################################################
# Target rules
gyro: $(OBJS)
      @echo Building software for $(SYSTEM) ...
      @echo
      $(CXX) $(CFLAGS) $(LFLAGS) -o $@$(EXE) $(OBJS) $(LIBRARIES)

#############################################################
# Clean
.PHONY: clean
clean:
    $(REMOVE) $(OBJS)


#############################################################
# Info
.PHONY: info
info:
    @echo 
    @echo Information about C++ Compiler/Linker:
    @echo 
    $(INFO_CXX)

When i type in make gyro,
i receive the output:

Compiling main.c for Windows_NT ...
MEEP
g++ -Wall -Wextra -W -static -DDEBUG -g -O2  -D -DWindows_NT -D  -I. -c main.c -o     main.o
makeNew.mak:83: recipe for target `main.o' failed
make: *** [main.o] Error 1

But Line number 83 is behind .c.o: %.h. And i don’t understand why.
Does anyone have a solution for me?

nik-el

0 / 0 / 0

Регистрация: 04.06.2018

Сообщений: 16

1

05.06.2018, 16:10. Показов 19272. Ответов 16

Метки нет (Все метки)


Помогите разобраться где косяк
Atmel Studio 7 выдает сообщения (из 18 ошибок остались 2) , в том числе: recipe for target ‘main.o’ failed
по двум кликам перехожу из main.c в makefile, в строку <<===<

C
1
2
3
4
5
./%.o: .././%.c
        @echo Building file: $<                    <<===<
        @echo Invoking: AVR/GNU C Compiler : 5.4.0
        $(QUOTE)C:Program Files (x86)AtmelStudio7.0toolchainavr8avr8-gnu-toolchainbinavr-gcc.exe$(QUOTE)  -x c -funsigned-char -funsigned-bitfields -DDEBUG  -I"C:Program Files (x86)AtmelStudio7.0PacksatmelATtiny_DFP1.3.172include" -I"../Config" -I"../examples/include" -I"../include" -I"../utils" -I"../utils/assembler" -I".." -I"../documentation" -I"../qtouch" -I"../qtouch/datastreamer" -I"../qtouch/include"  -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=attiny1616 -B "C:Program Files (x86)AtmelStudio7.0PacksatmelATtiny_DFP1.3.172gccdevattiny1616" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"   -o "$@" "$<" 
        @echo Finished building: $<

м.б. удалить этот » makefile» ?
ведь в Atmel Studio 7 он кажется не нужен

Добавлено через 5 часов 25 минут
А я не слишком сложный вопрос задал?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

0 / 0 / 0

Регистрация: 04.06.2018

Сообщений: 16

07.06.2018, 14:20

 [ТС]

2

аууу!!!
есть кто разбирается Atmel Studio 7?

0

1280 / 1186 / 175

Регистрация: 02.12.2013

Сообщений: 4,884

07.06.2018, 14:49

3

Atmel Studio 7 автоматически генирит makefile и лезть в него не понимая для чего он нужен и что в нем написано совсем не нужно. Пере создайте проект и запустите отладку в симуляторе, будут ошибки компилятора выкладывайте здесь.

1

1961 / 1275 / 130

Регистрация: 04.01.2010

Сообщений: 4,607

08.06.2018, 14:15

5

gcc (это компилятор такой) выкладывает стек ошибок при выполнении задачи makefile.
то есть задача сборки проекта собирает исходники в объектники, подключает библиотеки и линкует. В эту задачу входит сборка ваших исходников, которые не понял компилятор и завалился.

Вот и получается, ошибки «посыпались», одна, рождая другую. Исправьте ошибки в исходниках, и возможно все ваши остальные сложности отпадут за ненадобностью.

1

0 / 0 / 0

Регистрация: 04.06.2018

Сообщений: 16

09.06.2018, 14:10

 [ТС]

6

спасибо, я это уже понял, читаю доки на С++ и ищу где накосячил

0

1280 / 1186 / 175

Регистрация: 02.12.2013

Сообщений: 4,884

09.06.2018, 14:34

7

Для AVR лучше писать на чистом СИ

0

0 / 0 / 0

Регистрация: 04.06.2018

Сообщений: 16

13.06.2018, 09:26

 [ТС]

8

в Atmel Studio 7 вроде как С++ используется, так почему бы не воспользоваться его ++ми

0

1280 / 1186 / 175

Регистрация: 02.12.2013

Сообщений: 4,884

13.06.2018, 10:22

9

Потому что не зная тонкостей работы компилятора плюсов, Вы можете значительно увеличить размер программы и снижения быстродействия. На ПИ СИ это не очень страшно, а вот в AVR памяти мало

0

0 / 0 / 0

Регистрация: 04.06.2018

Сообщений: 16

13.06.2018, 11:47

 [ТС]

10

я в курсе и взял МК с запасом тини1616, но сейчас важнее запустить проект, а оптимизацией можно будет заняться и после, «если что»

0

0 / 0 / 0

Регистрация: 04.06.2018

Сообщений: 16

18.06.2018, 11:46

 [ТС]

11

в другой моей теме написал «регулярно запинаюсь из-за разных подходов(в примерах) в программировании на С / С++ и для разных сред и за разные годы издания фирменной документации»
короче, попадалово с этими примерами, лучше свой код писать

0

296 / 227 / 102

Регистрация: 11.08.2016

Сообщений: 780

24.06.2018, 14:37

12

nik-el, лог ошибок в студию

0

0 / 0 / 0

Регистрация: 13.04.2017

Сообщений: 41

06.12.2019, 01:05

13

У меня проблема один к одному, как у автора этой темы — nik-el. Хотя перечитал и выполнил все советы — проблему не решил.

Коротко повторюсь. В новый проект (С/С++) Atmel Studio 7 загрузил пример на простом С отсюда.

Уменьшил количество ошибок до 2-х:
Error recipe for target ‘main.o’ failed
Error too few arguments to function ‘uart_init’

Что делать дальше не знаю.
Во вложении — код main.c, лог сборки и скрин Atmel Studio 7.

Где копать? Заранее благодарю за помощь.

Миниатюры

Recipe for target'main.o' failed
 

0

576 / 340 / 66

Регистрация: 21.09.2008

Сообщений: 1,183

07.12.2019, 20:46

14

Реализация функции uart_init() где?

0

0 / 0 / 0

Регистрация: 13.04.2017

Сообщений: 41

08.12.2019, 11:10

15

Цитата
Сообщение от sharpey
Посмотреть сообщение

Реализация функции uart_init() где?

В библиотеке uart.h: void uart_init(void);
Больше тут.

0

Модератор

Эксперт по электронике

8756 / 6546 / 887

Регистрация: 14.02.2011

Сообщений: 22,962

08.12.2019, 14:14

16

Цитата
Сообщение от cadil_cib
Посмотреть сообщение

В библиотеке uart.h: void uart_init(void);

это не реализация, это объявление
и файлы с расширением .h никогда библиотеками не являлись, это файлы расширения(заголовочные файлы)

0

0 / 0 / 0

Регистрация: 13.04.2017

Сообщений: 41

16.12.2019, 12:56

17

Решение проблемы есть тут.

0

Форум РадиоКот • Просмотр темы — Ошибка recipe for target ‘main.o’ failed Atmel Studio7

Сообщения без ответов | Активные темы

ПРЯМО СЕЙЧАС:
Автор Сообщение

Не в сети

Заголовок сообщения: Ошибка recipe for target ‘main.o’ failed Atmel Studio7

СообщениеДобавлено: Пн мар 21, 2022 16:15:47 

Нашел транзистор. Понюхал.

Карма: -1

Рейтинг сообщений: -10

Зарегистрирован: Ср янв 11, 2012 11:55:51
Сообщений: 197

Рейтинг сообщения: 0

Не собирается проект. Ошибку recipe for target ‘main.o’ failed. Makefile выглядит так:

Если кто-то может разъяснить, в чем может быть причина — буду очень благодарен.
Изображение

Вернуться наверх
 

ПрофильПрофиль

Реклама

Land

Не в сети

Заголовок сообщения: Re: Ошибка recipe for target ‘main.o’ failed Atmel Studio7

СообщениеДобавлено: Ср мар 23, 2022 11:32:09 

Нашел транзистор. Понюхал.

Карма: -1

Рейтинг сообщений: -10

Зарегистрирован: Ср янв 11, 2012 11:55:51
Сообщений: 197

Рейтинг сообщения: 0

Собственно проблема оказалась в подключении #include. Тема закрыта.

Вернуться наверх
Реклама

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

I got this error while trying to compile blynk-library/linux

raspberrypi2$ git clone https://github.com/blynkkk/blynk-library.git
Cloning into 'blynk-library'...
remote: Counting objects: 2832, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 2832 (delta 0), reused 0 (delta 0), pack-reused 2828
Receiving objects: 100% (2832/2832), 494.34 KiB, done.
Resolving deltas: 100% (1674/1674), done.
raspberrypi2$ cd blynk-library/linux/
raspberrypi2$ make clean all target=raspberry
rm main.o BlynkDebug.o ../utility/BlynkHandlers.o blynk
rm: cannot remove `main.o': No such file or directory
rm: cannot remove `BlynkDebug.o': No such file or directory
rm: cannot remove `../utility/BlynkHandlers.o': No such file or directory
rm: cannot remove `blynk': No such file or directory
Makefile:62: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
g++ -I ../ -I ./ -DLINUX -c -O3 -w -DRASPBERRY main.cpp -o main.o
In file included from ./BlynkSocket.h:25:0,
                 from main.cpp:17:
../Blynk/BlynkProtocol.h: In member function ‘bool BlynkProtocol<Transp>::connect(uint32_t)’:
../Blynk/BlynkProtocol.h:55:13: error: there are no arguments to ‘yield’ that depend on a template parameter, so a declaration of ‘yield’ must be available [-fpermissive]
../Blynk/BlynkProtocol.h:55:13: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
Makefile:68: recipe for target 'main.o' failed
make: *** [main.o] Error 1
raspberrypi2$

I fixed this with editing blynk-library/linux/Makefile

raspberrypi2$ diff blynk-library/linux/Makefile-ORIGINAL blynk-library/linux/Makefile-EDITED
48c48
<       CFLAGS += -DRASPBERRY

---
>       CFLAGS += -DRASPBERRY -fpermissive

Explanation about this flag can be found here
http://stackoverflow.com/questions/8843818/what-does-the-fpermissive-flag-do

The compilation process is now OK

raspberrypi2$ make clean all target=raspberry
rm main.o BlynkDebug.o ../utility/BlynkHandlers.o blynk
rm: cannot remove `main.o': No such file or directory
rm: cannot remove `BlynkDebug.o': No such file or directory
rm: cannot remove `../utility/BlynkHandlers.o': No such file or directory
rm: cannot remove `blynk': No such file or directory
Makefile:62: recipe for target 'clean' failed
make: [clean] Error 1 (ignored)
g++ -I ../ -I ./ -DLINUX -c -O3 -w -DRASPBERRY -fpermissive main.cpp -o main.o
g++ -I ../ -I ./ -DLINUX -c -O3 -w -DRASPBERRY -fpermissive BlynkDebug.cpp -o BlynkDebug.o
g++ -I ../ -I ./ -DLINUX -c -O3 -w -DRASPBERRY -fpermissive ../utility/BlynkHandlers.cpp -o ../utility/BlynkHandlers.o
g++ main.o BlynkDebug.o ../utility/BlynkHandlers.o -lrt -lpthread -s -lwiringPi -o blynk
raspberrypi2$

Here is a code I wrote

#include <stdio.h>

main()
{
    printf("Hello World");
}

yeah fully basic

and this is makefile.

# Project: Project2
# Makefile created by Dev-C++ 5.11

CPP      = g++.exe
CC       = gcc.exe
WINDRES  = windres.exe
OBJ      = main.o
LINKOBJ  = main.o
LIBS     = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc
INCS     = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include"
CXXINCS  = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++"
BIN      = Project2.exe
CXXFLAGS = $(CXXINCS)
CFLAGS   = $(INCS)
RM       = rm.exe -f

.PHONY: all all-before all-after clean clean-custom

all: all-before $(BIN) all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ)
$(CC) $(LINKOBJ) -o $(BIN) $(LIBS)

main.o: main.c
$(CC) -c main.c -o main.o $(CFLAGS)

How can I fix this problem?

Atmel Studio 7.

Здравствуйте. Занимаюсь в свободное время небольшим проектом. Пару дней был перерыв, всё работало. Сегодня делаю ребилд, вот Output:

------ Rebuild All started: Project: RF, Configuration: Debug AVR ------
Build started.
Project "RF.cproj" (Clean target(s)):
Target "Clean" in file "D:CircuitsAtmelStudio7.0VsCompiler.targets" from project "D:CircuitsAvrProjectsRadioNannyRFRF.cproj" (entry point):
	Task "RunCompilerTask"
		Shell Utils Path D:CircuitsAtmelStudio7.0shellUtils
		D:CircuitsAtmelStudio7.0shellUtilsmake.exe clean 
		rm -rf  library.o   
		rm -rf  library.d   
		rm -rf "libRF.elf" "libRF.a" "libRF.hex" "libRF.lss" "libRF.eep" "libRF.map" "libRF.srec" "libRF.usersignatures"
	Done executing task "RunCompilerTask".
Done building target "Clean" in project "RF.cproj".
Done building project "RF.cproj".

Build succeeded.
------ Rebuild All started: Project: RF, Configuration: Debug AVR ------
Build started.
Project "RF.cproj" (default targets):
Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
Target "CoreBuild" in file "D:CircuitsAtmelStudio7.0VsCompiler.targets" from project "D:CircuitsAvrProjectsRadioNannyRFRF.cproj" (target "Build" depends on it):
	Task "RunCompilerTask"
		Shell Utils Path D:CircuitsAtmelStudio7.0shellUtils
		D:CircuitsAtmelStudio7.0shellUtilsmake.exe all --jobs 2 --output-sync 
D:CircuitsAvrProjectsRadioNannyRFReleaseMakefile(79,1): error: recipe for target 'library.o' failed
		make: *** [library.o] Error 1
	Done executing task "RunCompilerTask" -- FAILED.
Done building target "CoreBuild" in project "RF.cproj" -- FAILED.
Done building project "RF.cproj" -- FAILED.

Build FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

В ошибках:

Severity	Code	Description	Project	File	Line
Error		recipe for target 'library.o' failed	RF	D:CircuitsAvrProjectsRadioNannyRFReleaseMakefile	79

Что находится в Makefile строка 78-82:

78: ./%.o: .././%.c
79:	@echo Building file: $<
80:	@echo Invoking: AVR/GNU C Compiler : 5.4.0
81:	$(QUOTE)D:CircuitsAtmelStudio7.0toolchainavr8avr8-gnu-toolchainbinavr-gcc.exe$(QUOTE)  -x c -funsigned-char -funsigned-bitfields -DNDEBUG  -I"D:CircuitsAtmelStudio7.0PacksatmelATtiny_DFP1.2.118include"  -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -Wall -mmcu=attiny13 -B "D:CircuitsAtmelStudio7.0PacksatmelATtiny_DFP1.2.118gccdevattiny13" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"   -o "$@" "$<" 
82:	@echo Finished building: $<

Перестало билдиться именно при ребилде. Если откатить изменения, и сделать просто билд — всё работает.

Запускаю студию от администратора, т.е. с правами проблем нет. Да и по логике, если хватает прав удалить при clean файлы, то должно хватать и на создание.

Вообще, мне не совсем понятна фраза recipe for target ‘library.o’ failed.


Изменено 8 апреля, 2017 пользователем A1essandro

В настоящее время я не могу написать хороший make-файл и не знаю, почему.. -.-

Это мой main.c:

#include <windows.h>
#include <stdio.h>

int main(int argc, char *argv[])
{ 
   printf("MEEEEEP");
   return (0);
}

Это мой make-файл:

# make SYSTEM= OS= ENVIRONMENT=
# Binaries to use
ifeq ($(ENVIRONMENT),MINGW)
  CXX   = i686-pc-mingw32-g++
else
  CXX   = g++
endif
REMOVE  = rm -vf

RC      = windres
EXE     = .exe

#############################################################
# Info

ifeq ($(CXX),g++)
INFO_CXX = g++ -dumpversion; g++ -dumpmachine
endif

#############################################################
# Flags

DEBUG = -DDEBUG -g
OPTIMIZATION = -O2 #-Winline -finline-functions

CFLAGS = -Wall -Wextra -W -static $(DEBUG) $(OPTIMIZATION) -D$(SYSTEM) -D$(OS) -D$(ENVIRONMENT) $(PRGFLAGS)

ifeq ($(SYSTEM),I686)
  CFLAGS   += -m32

  ifeq ($(OS),WIN32)
    CFLAGS += -D_WIN32 
  endif

  ifeq ($(ENVIRONMENT),MINGW)
    CFLAGS += -fexceptions 
  endif
endif

 LFLAGS    = 

#############################################################
# Files

CFILES      = main.c
OBJS        = ${CFILES:.c=.o}

#############################################################
# Include

INCLUDES      = -I.

#############################################################
# Library

LIBRARIES     = 

#############################################################
# Targets
.PHONY: all
all:    
    @echo == Standard build: make SYSTEM=I686 OS=WIN32 ENVIRONMENT=MINGW
    @echo
    @echo 
    make SYSTEM=I686 OS=WIN32 ENVIRONMENT=MINGW gyro

#############################################################
# Implicit rules and filename extensions... 
.SUFFIXES: .h .o .c

.c.o:     %.h
      @echo Compiling $< for $(SYSTEM) $(OS) $(ENVIRONMENT) ...
      @echo MEEP
      $(CXX) $(CFLAGS) $(INCLUDES) -c $< -o $@
      @echo MEEP2

#############################################################
# Target rules
gyro: $(OBJS)
      @echo Building software for $(SYSTEM) ...
      @echo
      $(CXX) $(CFLAGS) $(LFLAGS) -o $@$(EXE) $(OBJS) $(LIBRARIES)

#############################################################
# Clean
.PHONY: clean
clean:
    $(REMOVE) $(OBJS)


#############################################################
# Info
.PHONY: info
info:
    @echo 
    @echo Information about C++ Compiler/Linker:
    @echo 
    $(INFO_CXX)

Когда я набираю make gyro, я получаю вывод:

Compiling main.c for Windows_NT ...
MEEP
g++ -Wall -Wextra -W -static -DDEBUG -g -O2  -D -DWindows_NT -D  -I. -c main.c -o     main.o
makeNew.mak:83: recipe for target `main.o' failed
make: *** [main.o] Error 1

Но строка номер 83 находится позади .co: %.h. И я не понимаю, почему. У кого-нибудь есть решение для меня?

during compilation of a program its showing error that «line 28»,, G:aaMakefile.win
» recipe for target ‘main.o’ failed»
please help me how to debug it..

Jul 25 ’15
#1

weaknessforcats

Where did you get the makefile?

Jul 25 ’15
#2

its installed in that DEV C++ software

Jul 25 ’15
#3

weaknessforcats

The makefile is generated based on your project code. Without seeing your code for main(), I can’t say for sure but you may not have compiled correctly.

Generating an object file ( a .o) can fail if your code has errors.

Are there any other errors before this one?

Jul 25 ’15
#4

this is the makefile that is generated…

# Project: Project2
# Makefile created by Dev-C++ 5.11

CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
OBJ = main.o
LINKOBJ = main.o
LIBS = -L»C:/Program Files (x86)/Dev-Cpp/MinGW64/lib» -L»C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib» -static-libgcc -pg
INCS = -I»C:/Program Files (x86)/Dev-Cpp/MinGW64/include» -I»C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include» -I»C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include»
CXXINCS = -I»C:/Program Files (x86)/Dev-Cpp/MinGW64/include» -I»C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include» -I»C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include» -I»C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++»
BIN = Project2.exe
CXXFLAGS = $(CXXINCS) -ansi -fno-asm -traditional-cpp -pg
CFLAGS = $(INCS) -ansi -fno-asm -traditional-cpp -pg
RM = rm.exe -f

.PHONY: all all-before all-after clean clean-custom

all: all-before $(BIN) all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ)
$(CC) $(LINKOBJ) -o $(BIN) $(LIBS)

main.o: main.c
$(CC) -c main.c -o main.o $(CFLAGS)

Jul 26 ’15
#5

this line showing error…
main.o: main.c
$(CC) -c main.c -o main.o $(CFLAGS)

Jul 26 ’15
#6

weaknessforcats

All this tells me is that the error is in main.c. Generated makefiles like this one don’t fail because of errors in the makefile.

That is, errors in your code are causing this. This also means that you are getting more errors than the one you reported.

What does your main.c look like?

Jul 26 ’15
#7

this is my main function

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system(«pause») or input loop */

int main(int argc, char *argv[])
{
return 0;
}

Jul 26 ’15
#8

weaknessforcats

There are no errors in the code you posted. Is this the exact code you were compiling?

Jul 26 ’15
#9

yeah…while compiling the same program its showing that error…

Jul 27 ’15
#10

Maybe gcc.exe is not accessible with your current PATH.
try typing the offending command at the command prompt:
gcc.exe -c main.c -o main.o
This can’t succeed because it doesn’t include the CFLAGS, but the nature of the failure will tell you if gcc is running. That command line should succeed if you temporarily comment out the #includes in main.c.

Jul 27 ’15
#11

Maybe gcc.exe is not accessible with your current PATH.
try typing the offending command at the command prompt:
gcc.exe -c main.c -o main.o
This can’t succeed because it doesn’t include the CFLAGS, but the nature of the failure will tell you if gcc is running. That command line should succeed if you temporarily comment out the #includes in main.c.

Another possibility is that the long list of include paths makes the expanded command line too long for your shell.

Jul 27 ’15
#12

Sign in to post your reply or Sign up for a free account.

I am currently failing to write a good makefile and don’t know the reason why.. -.-

This is my main.c:

#include <windows.h>
#include <stdio.h>

int main(int argc, char *argv[])
{ 
   printf("MEEEEEP");
   return (0);
}

This is my makefile:

# make SYSTEM= OS= ENVIRONMENT=
# Binaries to use
ifeq ($(ENVIRONMENT),MINGW)
  CXX   = i686-pc-mingw32-g++
else
  CXX   = g++
endif
REMOVE  = rm -vf

RC      = windres
EXE     = .exe

#############################################################
# Info

ifeq ($(CXX),g++)
INFO_CXX = g++ -dumpversion; g++ -dumpmachine
endif

#############################################################
# Flags

DEBUG = -DDEBUG -g
OPTIMIZATION = -O2 #-Winline -finline-functions

CFLAGS = -Wall -Wextra -W -static $(DEBUG) $(OPTIMIZATION) -D$(SYSTEM) -D$(OS) -D$(ENVIRONMENT) $(PRGFLAGS)

ifeq ($(SYSTEM),I686)
  CFLAGS   += -m32

  ifeq ($(OS),WIN32)
    CFLAGS += -D_WIN32 
  endif

  ifeq ($(ENVIRONMENT),MINGW)
    CFLAGS += -fexceptions 
  endif
endif

 LFLAGS    = 

#############################################################
# Files

CFILES      = main.c
OBJS        = ${CFILES:.c=.o}

#############################################################
# Include

INCLUDES      = -I.

#############################################################
# Library

LIBRARIES     = 

#############################################################
# Targets
.PHONY: all
all:    
    @echo == Standard build: make SYSTEM=I686 OS=WIN32 ENVIRONMENT=MINGW
    @echo
    @echo 
    make SYSTEM=I686 OS=WIN32 ENVIRONMENT=MINGW gyro

#############################################################
# Implicit rules and filename extensions... 
.SUFFIXES: .h .o .c

.c.o:     %.h
      @echo Compiling $< for $(SYSTEM) $(OS) $(ENVIRONMENT) ...
      @echo MEEP
      $(CXX) $(CFLAGS) $(INCLUDES) -c $< -o $@
      @echo MEEP2

#############################################################
# Target rules
gyro: $(OBJS)
      @echo Building software for $(SYSTEM) ...
      @echo
      $(CXX) $(CFLAGS) $(LFLAGS) -o $@$(EXE) $(OBJS) $(LIBRARIES)

#############################################################
# Clean
.PHONY: clean
clean:
    $(REMOVE) $(OBJS)


#############################################################
# Info
.PHONY: info
info:
    @echo 
    @echo Information about C++ Compiler/Linker:
    @echo 
    $(INFO_CXX)

When i type in make gyro,
i receive the output:

Compiling main.c for Windows_NT ...
MEEP
g++ -Wall -Wextra -W -static -DDEBUG -g -O2  -D -DWindows_NT -D  -I. -c main.c -o     main.o
makeNew.mak:83: recipe for target `main.o' failed
make: *** [main.o] Error 1

But Line number 83 is behind .c.o: %.h. And i don’t understand why.
Does anyone have a solution for me?

This question is related to
c
makefile
cygwin

You see the two empty -D entries in the g++ command line? They’re causing the problem. You must have values in the -D items e.g. -DWIN32

if you’re insistent on using something like -D$(SYSTEM) -D$(ENVIRONMENT) then you can use something like:

SYSTEM ?= generic
ENVIRONMENT ?= generic

in the makefile which gives them default values.

Your output looks to be missing the all important output:

<command-line>:0:1: error: macro names must be identifiers
<command-line>:0:1: error: macro names must be identifiers

just to clarify, what actually got sent to g++ was -D -DWindows_NT, i.e. define a preprocessor macro called -DWindows_NT; which is of course not a valid identifier (similarly for -D -I.)

Offline

Зарегистрирован: 05.06.2016

Добрый день, коллеги.
Нужна помощь, а может, сторонний взгляд на проблему.
Итак, Создается некое устройство на основе ATMega328P. На борту часы реального времени DS1307, «выход в свет» должен обемпечить ethernet-шилд на базе WS5100. Поверх езернета планируется протокол MQTT.

Программная часть пишется в AtmelStudio 7. Для реализации проекта решил взять штатные ардуиновские библиотеки Wire.h и SPI.h. Импортировал в проект, не забыв полагающиеся *.срр.

При попытке компиляции был послан Студией куда-то далеко.

//Декларирование библиотек 
#include <avr/io.h>
#include <Wire.h>


//----------------------------------------------------------------
//Декларирование автозамены
//Светодиоды-индикаторы
#define LED_Ethernet_OK PD2
#define LED_Mosquitto_OK PD3
#define LED_NTP_OK PD5


  
//Макросы управления индикаторами

#define LED_Ethernet_OK_ON() PORTD |= (1 << LED_Ethernet_OK) //Макрос включения
#define LED_Ethernet_OK_OFF() PORTD &= ~(1 << LED_Ethernet_OK) //Макрос выключения

#define LED_Mosquitto_OK_ON() PORTD |= (1 << LED_Mosquitto_OK)
#define LED_Mosquitto_OK_OFF() PORTD &= ~(1 << LED_Mosquitto_OK)

#define LED_NTP_OK_ON() PORTD |= (1 << LED_NTP_OK)
#define LED_NTP_OK_OFF() PORTD &= ~(1 << LED_NTP_OK)
//----------------------------------------------------------------------


int main(void)
{
	//Конфигурирование портов
	DDRD |= (1 << LED_Ethernet_OK) | (1 << LED_Mosquitto_OK) | (1 << LED_NTP_OK); //Установка порта на выход
	PORTD &= ~(1 << PD6); //Установка порта на вход
    /* Replace with your application code */
    while (1) 
    {
    }
}

Выданы следующие ошибки:

1. Severity    Code    Description    Project    File    Line
Error        Stream.h: No such file or directory    NTP-MQTT_01    C:Program Files (x86)ArduinohardwarearduinoavrlibrariesWiresrcWire.h    26
2. Severity    Code    Description    Project    File    Line
Error        recipe for target ‘main.o’ failed    NTP-MQTT_01    D:MicrocontrollerProjArduino_NTP-MQTTNTP-MQTT_01NTP-MQTT_01DebugMakefile    79
 

Запрашиваемый Stream.h нашел, импортировал в проект. Результат тот же.

Уважемые знающие — подскажите, что не так я делаю?

atmelstudioc++

I’m getting the error: recipe for target main.o failed. I’m currently programming for the ATmega 168BPB board, trying to run the following simple program:

int main(void)
{
    DDRB = 0xFF;
    PORTB = 1 << PORTB5;

    while (1) 
    {
    }
}

to just get the built-in LED to turn on.
Has anyone had any experience with this problem and/or knows how to solve it?

Best Solution

Try to turn off your antivirus : i’ve had that one with «Comodo internet security» After DISABLE «auto-containment», it starts working as expect (with no errors)… if it does any, you probably should add #include <avr/io.h> to beginning of your code, this is will declare your CHIP architecture and prevent errors as like 'DDRB' undeclared and same stuff.

#include <avr/io.h>

int main(void)
{
    DDRB = 0xFF;
    PORTB = 1 << PORTB5;

    while (1) 
    {
    }
}

Related Solutions

Cygwin – Makefile-error: recipe for target `main.o’ failed

You see the two empty -D entries in the g++ command line? They’re causing the problem. You must have values in the -D items e.g. -DWIN32

if you’re insistent on using something like -D$(SYSTEM) -D$(ENVIRONMENT) then you can use something like:

SYSTEM ?= generic
ENVIRONMENT ?= generic

in the makefile which gives them default values.

Your output looks to be missing the all important output:

<command-line>:0:1: error: macro names must be identifiers
<command-line>:0:1: error: macro names must be identifiers

just to clarify, what actually got sent to g++ was -D -DWindows_NT, i.e. define a preprocessor macro called -DWindows_NT; which is of course not a valid identifier (similarly for -D -I.)

AVR studio Error “Got 0xc0, expected 0x00”

LOW fuse 0xFF means CKSEL3:0 bits are 0b1111.
That means the low power crystal oscillator is selected (please refer 10.4 on page 40 of the datasheet).

Low power oscillator could be unstable when driving 16 MHz crystal, and unable to drive a ceramic resonator more than 10 MHz. It may be very sensitive to the schematic implementation and noise. Instead of it, it is better to use full-swing oscillator (low fuse byte 0xF7).
Check schematic implementation, type of the resonator and capacitance on XTAL pins.

To restore ISP connectivity, you can unsolder the resonator, and apply about 1 MHz square wave on the XTAL1 pin (refer to 30.8 on page 339 of the datasheet).

Skip to main content

Forum for Electronics

Forum for Electronics

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals… and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

  • Digital Design and Embedded Programming

  • Microcontrollers

You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an alternative browser.

Atmel AVR Studio C programming


  • Thread starter

    shomikc


  • Start date

    Nov 10, 2021

Status
Not open for further replies.

  • #1

Joined
Apr 19, 2013
Messages
71
Helped
0
Reputation

0

Reaction score
0
Trophy points
1,286
Activity points

1,951


I started teaching Atmel AVR microcontroller this semester.

I need to reverse an array, the first element of array being swapped with last and second element being swapped with second last and so on.

I am getting a recipe for target *.elf failed error.

Please help.

#include <avr/io.h>

//void swap (int *px, int *py);

void swap (char *px, char *py)
{
char temp;
temp = *px;
*px = *py;
*py = temp;
}

void reversal (char a[ ], char n)
{
char i, j, k;
 
j = n%2;
// n is the number of elements in the array
if (j == 1)
k = n + 1;
for (i = 0; i < (k)/2 ; i++)
{
swap (&a[i], &a[n - i - 1]);
}
/*for (i = 0; i < n ; i++)
{
printf("%d n",a[i] );
}*/
}

int main(void)
{
/* Replace with your application code */
char n = 5;
char a[5] = {1, 2, 3, 4, 5};
  
//reversal(a, n);
}

  • #2

Joined
Jul 6, 2014
Messages
240
Helped
0
Reputation

98

Reaction score
53
Trophy points
1,308
Location

West Coast

Activity points

3,861


What AVR are you using ? The «recipe» error might refer to the
compiler not having the recipe for compiling for the chip you are using.
It may make a difference whether the source file is *.c or *.cpp.

Last edited: Nov 10, 2021

  • #3

FvM

FvM

Super Moderator

Joined
Jan 22, 2008
Messages
51,225
Helped
0
Reputation

29,584

Reaction score
13,801
Trophy points
1,393
Location

Bochum, Germany

Activity points

292,789


k isn’t initialized for even n values. For odd n values, the code superfluously swaps the center element with itself.

  • #4

Joined
Apr 19, 2013
Messages
71
Helped
0
Reputation

0

Reaction score
0
Trophy points
1,286
Activity points

1,951


What AVR are you using ? The «recipe» error might refer to the
compiler not having the recipe for compiling for the chip you are using.
It may make a difference whether the source file is *.c or *.cpp.

Hi. I am using ATxmega128A1 to initialize the project and then I am using the Simulator tool as the debugger.

— Updated Nov 11, 2021 —

k isn’t initialized for even n values. For odd n values, the code superfluously swaps the center element with itself.

Yes, you are right but the code works in other C ide with int instead of char. so that isnt the problem.

  • #5

Joined
Jul 6, 2014
Messages
240
Helped
0
Reputation

98

Reaction score
53
Trophy points
1,308
Location

West Coast

Activity points

3,861


I compiled your code as a .c file in AVR Studio with the project using ATxmega128A1 with GCC, and it completed successfully, with 4 warnings, no errors.

  • #6

Joined
Apr 19, 2013
Messages
71
Helped
0
Reputation

0

Reaction score
0
Trophy points
1,286
Activity points

1,951


I compiled your code as a .c file in AVR Studio with the project using ATxmega128A1 with GCC, and it completed successfully, with 4 warnings, no errors.

Thankyou. But I am still not able to fix my error. my assembly files work okay. which version of avr studio are you using?

— Updated Nov 11, 2021 —

Thankyou. But I am still not able to fix my error. my assembly files work okay. which version of avr studio are you using?

Also can please send me the warnings.

— Updated Nov 11, 2021 —

Thankyou. But I am still not able to fix my error. my assembly files work okay. which version of avr studio are you using?

— Updated Nov 11, 2021 —

Also can please send me the warnings.

and do you have a header file of the controller in the dependencies.

— Updated Nov 11, 2021 —

Thankyou. But I am still not able to fix my error. my assembly files work okay. which version of avr studio are you using?

— Updated Nov 11, 2021 —

Also can please send me the warnings.

— Updated Nov 11, 2021 —

and do you have a header file of the controller in the dependencies.

I get the same error even with just avr/io.h and just main() function. Now I get recipe for target main.o failed.

Last edited: Nov 11, 2021

  • #7

Joined
Jul 6, 2014
Messages
240
Helped
0
Reputation

98

Reaction score
53
Trophy points
1,308
Location

West Coast

Activity points

3,861


I used Atmel AVR studio 7 , (and an old version 6.2). Check that a .c source file is not being built with G++ or a .cpp file being built by GCC

The warning messages are:
Warning 1 array subscript has type ‘char’
Warning 2 unused variable ‘a’
Warning 3 unused variable ‘n’
Warning 4 ‘k’ may be used uninitialized in this function

Last edited: Nov 11, 2021

  • #8

KlausST

Joined
Apr 17, 2014
Messages
23,525
Helped
0
Reputation

9,543

Reaction score
5,182
Trophy points
1,393
Activity points

156,068


Hi,

Also can please send me the warnings.

This is what I expected from you…
Because I expected to make your code to work, not FenTrac’s code/compiler …

On the other hand maybe you’ve learned how important it is to give the errors/warnings for others to get a clue what’s going on.

Klaus

  • #9

Joined
Apr 19, 2013
Messages
71
Helped
0
Reputation

0

Reaction score
0
Trophy points
1,286
Activity points

1,951


Hi. I would like to know if there is any other software to compile C programs for AVR microcontrollers other than AVR studio. Does MPLAB ide provide compilation of C programs forAVR microcontroller

  • #10

Joined
Dec 1, 2010
Messages
2
Helped
0
Reputation

2

Reaction score
0
Trophy points
1,281
Activity points

1,327


Hi. I would like to know if there is any other software to compile C programs for AVR microcontrollers other than AVR studio. Does MPLAB ide provide compilation of C programs forAVR microcontroller

XC8 with MPLab X will compile for AVR

  • #11

Joined
Apr 19, 2013
Messages
71
Helped
0
Reputation

0

Reaction score
0
Trophy points
1,286
Activity points

1,951


Hi. I kind of figured it out. First we turn off windows defender and finally from Debug option we select Options and once there we select the appropriate Toolchain on the right hand of the pop up window. (It may be necessary to disable the antivirus also.)

For the life of me I cannot understand the connection between windows defender and Microchip or Atmel Studio. The Assembler in Simulator mode works with Windows Defender on.

However I am still unable to print the result in The Output, for example, the maximum array.

If you can help with this.

— Updated Nov 14, 2021 —

Hi. I kind of figured it out. First we turn off windows defender and finally from Debug option we select Options and once there we select the appropriate Toolchain on the right hand of the pop up window. (It may be necessary to disable the antivirus also.)

For the life of me I cannot understand the connection between windows defender and Microchip or Atmel Studio. The Assembler in Simulator mode works with Windows Defender on.

However I am still unable to print the result in The Output, for example, the maximum array.

If you can help with this.

Sorry, I meant maximum of an array. If anyone can give some guidance on this. I appreciate all the help given.

Last edited: Nov 14, 2021

  • #12

Joined
Jul 6, 2014
Messages
240
Helped
0
Reputation

98

Reaction score
53
Trophy points
1,308
Location

West Coast

Activity points

3,861


Using printf() with an AVR is complicated. Do a google search for more information on how to do it. Usually, output uses the USART on the AVR through a Serial interface to a terminal, such as a TTL to USB converter. Or, to a display such as a 16×2 LCD attached to the AVR.

  • #13

Joined
Apr 19, 2013
Messages
71
Helped
0
Reputation

0

Reaction score
0
Trophy points
1,286
Activity points

1,951


Using printf() with an AVR is complicated. Do a google search for more information on how to do it. Usually, output uses the USART on the AVR through a Serial interface to a terminal, such as a TTL to USB converter. Or, to a display such as a 16×2 LCD attached to the AVR.

yes. you are right and it is very complicated. I have tried with USART and not succeeded. thanks. I will keep trying.

  • #14

Joined
Jul 6, 2014
Messages
240
Helped
0
Reputation

98

Reaction score
53
Trophy points
1,308
Location

West Coast

Activity points

3,861


The microcontroller’s datasheet has the information on configuring the USART registers and sample code for C and assembler. Once configured, data can be put in the transmit register one byte at a time, to send it to the terminal. Below are examples for an ATmega328pb USART0 in C.

C:
  UCSR0A |= (1 << U2X0);    // U2X0 = 1 = set double speed mode
  UCSR0B = (1 << RXEN0) | (1 << TXEN0);  // enable transmit, receive
  UCSR0C = (1 << UCSZ01) | (1 << UCSZ00); // Use 8-bit character sizes
  UBRR0 = 16; // load 115200 baud value  into the UBRR0 register
//---------------------------------------------------------------------------------------
to send a byte:
   UDR0 = a[i];

   a[i] may need to have 0x30 added to it to print as the ascii character for a number on the terminal

The code for the AVR you are using will probably be similar.

Last edited: Nov 15, 2021

Status
Not open for further replies.
  • Digital Design and Embedded Programming

  • Microcontrollers

  • This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.

Like this post? Please share to your friends:
  • Ошибка rgl warning
  • Ошибка rgl error
  • Ошибка rgb fusion
  • Ошибка rfw lock
  • Ошибка rfc ивеко стралис что означает