C言語の分割コンパイルの質問です
#include<stdio.h>
#include"test1.h"
func1()
{
for(i=0;i<3;i++){
printf("%s\n",a[i]);
}
}
/*test1-1.c終わり*/
#include<stdio.h>
#include"test1.h"
func2()
{
for(i=0;i<3;i++){
printf("%s\n",b[i]);
}
}
/*test1-2.c終わり*/
#include<stdio.h>
#include"test1.h"
int main()
{
func1();
func2();
}
/*test1-3.c終わり*/
char a[]={"a","b","c"};
char b[]={"d","e","f"};
int i;
/*test1.h終わり*/
このファイルを分割コンパイルすると
/usr/bin/ld: multiple definitions of symbol _a
/var/tmp/ccgpaaaa.o definition of _a in section (__DATA,__data)
/var/tmp/cciuaaaa.o definition of _a in section (__DATA,__data)
/usr/bin/ld: multiple definitions of symbol _b
/var/tmp/ccgpaaaa.o definition of _b in section (__DATA,__data)
/var/tmp/cciuaaaa.o definition of _b in section (__DATA,__data)
/var/tmp/cckzaaaa.o definition of _a in section (__DATA,__data)
/var/tmp/cckzaaaa.o definition of _b in section (__DATA,__data)
というエラーがでます。よろしくお願いします。