我有一个简单的程序 的 demo_use.c
#include "libhello.h"
int main(void) {
hello();
return 0;
}
libhello.h
void hello(void);
libhello.c
#include <stdio.h>
void hello(void) {
printf("Hello, library world.\n");
}
我在终端中使用了命令
gcc demo_use.c -o test
错误 架构x86_64的未定义符号:&#34; _hello&#34;,
引自:ccZdSQP3.o中的_main
ld:找不到架构的符号x86_64 collect2:ld返回1退出状态
答案 0 :(得分:4)
您需要将两个源文件一起编译以生成二进制文件。使用
gcc demo_use.c libhello.c -o test
否则,hello()
函数的定义将不存在。因此,在链接时,链接器将抛出undefined symbol
错误。