inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.

처음 보는 에러입니다

해결된 질문

204

jh031159@gmail.com

작성한 질문수 4

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 자주 묻는 질문에 혹시 답이 있을 수 있어요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

oled 실습 중 발생한 처음 보는 에러인데 어떻게 해결 할 수 있을까요

image.png

 

image.png

 

Raspberry-Pi arduino 임베디드

답변 3

0

ojtube5

문제를 정확히 진단하려면 실제 작성하신 코드를 보는 것이 가장 좋지만,
현재 상황으로 보아 yun_logo1이 중복 정의되어 있는 것이 원인이예요.

보통 이런 중복 정의를 방지하기 위해 #ifndef 를 사용하는데,
문법이 정확히 사용되었는지 확인해보셔야 합니다.

예를 들어 아래와 같은 형태로 작성되어 있어야 합니다:

#ifndef OJW
#define OJW <-- 이게 선언이 되어야. 다음부터 중복 incldue가 안돼요.


#endif

0

jh031159@gmail.com

메인 소스 파일에 있던 yunlogo 헤더 파일을 제거해서 해결했습니다 하지만 ifndef을 활용해서 헤더가드를 사용했기에 에러가 안 나는 게 맞다고 생각하는데 에러가 생긴 이유가 궁금합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 윤정현님.

임베디드 개발 중 OLED 실습에서 발생한 “multiple definition” 에러에 대해 해결 방법을 안내 드리도록 하겠습니다.

“multiple definition” 오류는 동일한 변수나 함수가 여러 곳에서 정의될 때 발생합니다. 주로 C/C++ 프로젝트에서 발생하며, 주 원인은 헤더 파일의 잘못된 사용에 있습니다.

  1. 헤더 가드 사용하기:

    • 문제의 원인이 된 파일 yun_logo.h에 헤더 가드를 추가하세요. 헤더 가드는 파일이 여러 번 포함되지 않도록 예방해 줍니다.
    • 다음 코드 블록을 yun_logo.h의 시작 부분에 추가하세요:
      ”`c
      #ifndef YUN_LOGO_H
      #define YUN_LOGO_H

    // 기존 코드

    #endif // YUN_LOGO_H
    “`

  2. 변수의 정의와 선언 분리하기:

    • 헤더 파일은 선언을 위해 사용되도록 하는 것이 좋습니다. 헤더 파일에는 extern으로 변수나 함수를 선언하고, 실제 정의는 소스 파일(.c 파일) 내에서 수행하세요. 예:
      • yun_logo.h:
      ”`c
      #ifndef YUN_LOGO_H
      #define YUN_LOGO_H

    extern int yun_logo1; // 선언

    #endif // YUN_LOGO_H

       - `yun_logo.c`:
       ```c
       int yun_logo1 = 0; // 정의
    

이러한 전략들은 이와 유사한 에러를 방지하는데 도움을 줄 것입니다. 유사한 질문과 답변도 참고해 보시면 더 도움이 될 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

13강 프로젝트생성해보기 관련 질문

0

6

1

난방실만들기.4 진행 중, m_state 값 초기화가 안됩니다..

0

32

2

IDE 설치 영상 관련 문의

0

47

2

[정보 공유] STM32CubeIDE 버전별 이슈 정리 (1.19 미만 / 2.0.0 이상)

0

109

2

스위치회로 value값 바뀌지 않음

0

42

2

FND 점등에 성공했는데, Controller.c 디버깅 중 문제가 생겼습니다.

0

59

2

FND 7세그먼트 처음 킬 때의 '7777'불이 안 들어옵니다.

0

69

2

포트에 안잡히면 x쉘에서 Port설정을 어떻게 하죠..?

0

57

2

빌드 및 디버깅 오류

0

112

2

보드에 불이 안들어옵니다.

0

71

2

씽크 오류

0

54

1

고추건조기 개발보드 전원연결 문제점..

0

70

2

회로도 핀 연결 질문

0

66

2

elf 파일을 찾을수 없다는 오류

0

71

2

Nucleo 보드로 대체

0

84

2

구매해야 하는 물품 문의

0

94

2

ST-Link 디버깅 에러

0

83

3

강의 사용하시는 pdf는 어디에 있나요?

0

108

2

이전 질문 재질문입니다.!

0

75

2

다른 개발 실습 보드 사용문의

0

95

2

smt32 Cube Ide 설치관련 에러입니다

0

221

2

제가 1년전에 구매해서 이제 뜯어봤는데 납땜이 겹쳐있는데 사용해도 괜찮을까요?

0

93

2

타이머 최대 주파수 질문

0

64

2

초기 신호에 대한 질문

0

88

2