【发布时间】:2011-02-27 15:54:57
【问题描述】:
我遇到了以下错误,我一生都无法弄清楚我做错了什么。
$ gcc main.c -o main
Undefined symbols:
"_wtf", referenced from:
_main in ccu2Qr2V.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
main.c:
#include <stdio.h>
#include "wtf.h"
main(){
wtf();
}
wtf.h:
void wtf();
wtf.c:
void wtf(){
printf("I never see the light of day.");
}
现在,如果我在头文件中包含整个函数而不仅仅是签名,它会很好地符合要求,所以我知道 wtf.h 被包含在内。为什么编译器看不到 wtf.c?还是我错过了什么?
问候。
【问题讨论】:
-
你从来没有告诉编译器编译 wtf.c。这就是为什么。
-
是的,我来自魔法和独角兽之地,所以我只是假设将实现命名为与标头相同的名称将允许编译器找到两者。
标签: c linker-errors undefined-reference undefined-symbol