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


답변 3
0
문제를 정확히 진단하려면 실제 작성하신 코드를 보는 것이 가장 좋지만,
현재 상황으로 보아 yun_logo1이 중복 정의되어 있는 것이 원인이예요.
보통 이런 중복 정의를 방지하기 위해 #ifndef 를 사용하는데,
문법이 정확히 사용되었는지 확인해보셔야 합니다.
예를 들어 아래와 같은 형태로 작성되어 있어야 합니다:
#ifndef OJW
#define OJW <-- 이게 선언이 되어야. 다음부터 중복 incldue가 안돼요.
#endif
0
메인 소스 파일에 있던 yunlogo 헤더 파일을 제거해서 해결했습니다 하지만 ifndef을 활용해서 헤더가드를 사용했기에 에러가 안 나는 게 맞다고 생각하는데 에러가 생긴 이유가 궁금합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 윤정현님.
임베디드 개발 중 OLED 실습에서 발생한 “multiple definition” 에러에 대해 해결 방법을 안내 드리도록 하겠습니다.
“multiple definition” 오류는 동일한 변수나 함수가 여러 곳에서 정의될 때 발생합니다. 주로 C/C++ 프로젝트에서 발생하며, 주 원인은 헤더 파일의 잘못된 사용에 있습니다.
헤더 가드 사용하기:
- 문제의 원인이 된 파일
yun_logo.h에 헤더 가드를 추가하세요. 헤더 가드는 파일이 여러 번 포함되지 않도록 예방해 줍니다.
- 다음 코드 블록을
yun_logo.h의 시작 부분에 추가하세요:
”`c
#ifndef YUN_LOGO_H
#define YUN_LOGO_H
// 기존 코드
#endif // YUN_LOGO_H
“`- 문제의 원인이 된 파일
변수의 정의와 선언 분리하기:
- 헤더 파일은 선언을 위해 사용되도록 하는 것이 좋습니다. 헤더 파일에는
extern으로 변수나 함수를 선언하고, 실제 정의는 소스 파일(.c파일) 내에서 수행하세요. 예:
yun_logo.h:
#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





