一共有3个文件
main.c message.c message.h
其中message.c的内容
#include <stdio.h>
void goodbye(void)
{
printf("hello world\n");
}
message.h的内容
extern void goodbye();
main.c的内容
#include <stdio.h>
#include "message.h"
int
main(int argc,char **argv)
{
goodbye();
return 0;
}
直接编译
gcc -o goodbye main.c,提示main.c:(.text+0x15): undefined reference to `goodbye'
分别编译,即
gcc -c message.c 然后gcc -c main.c ,最后链接gcc -o goodbye main.c message.c 则ok,可产生运行goodbye可执行文件
为什么直接编译不ok呢?gcc默认应该在当前文件夹下寻找自己定义的头文件的啊...然后在连接的时候搞定啊,奇怪.试过了iquote和-L选项都不ok,
os:archlinux
gcc version:4.6.2
HELP!!!谢谢