gcc 编译出现: multiple definition of `func_h2'
//home1.c文件
#include <stdio.h>
#include "home2.c"
int main()
{
printf("Hello World!\n");
func_h2();
return 0;
}
home1.c文件。
//home2.c
void func_h2()
{
printf("func_h2\n");
}
home2.c文件
直接gcc *.c出现了multiple definition of `func_h2'
[user@localhost homework]$ gcc *.c
home2.c: 在函数 ‘func_h2’ 中:
home2.c:3: 警告:隐式声明与内建函数 ‘printf’ 不兼容
/tmp/cckIyyF1.o: In function `func_h2':
home2.c:(.text+0x0): multiple definition of `func_h2'
/tmp/ccEdZQph.o:home1.c:(.text+0x0): first defined here
collect2: ld 返回 1
查阅网上说的是home1.c预编译时,把home.2c包含进去了,直接编译home1.c时,已经编译过了home2.c了。
所以直接:
gcc home1.c -o home.out即可。