티스토리 뷰

Tip and Error/C

[Error] multiple definition of '...'

geonwoopaeng@gmail.com 2021. 2. 18. 20:59

해당 에러는 header file에 배열을 넣어서 발생하였습니다.

즉, header file, source file이건 변수가 선언이 되면 global로 되어서

해당 header file을 include한 source file을 compile한 object file을 링크하려고 하면 중복 에러가 되는 것입니다.

=> include 할 때 마다 하나의 변수 이름에 대응되는 주소가 추가되는 것입니다.

해결 => 헤더파일에는 변수의 선언만 해야합니다.

map.h (header file)

#ifndef MAP_H
# define MAP_H

extern int map[24][24];
double PI = 3.14;

#endif


map.c (source file)


#include "map.h"

int map[24][24] = {0,};
printf("%f", PI); // 3.14;

 

 

<자료>

https://kldp.org/node/92618

반응형

'Tip and Error > C' 카테고리의 다른 글

lldb Tips  (0) 2021.03.28
lldb (Debugger)  (2) 2021.02.23
[Error] control reaches end of non-void function  (0) 2021.02.17
[Error] *** stack smashing detected ***: terminated Aborted  (0) 2021.02.08
포인터  (0) 2020.08.27
공지사항
최근에 올라온 글