我有一个简单的程序,如 demo_use.c
#include "libhello.h"
int main(void) {
hello();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
libhello.h
void hello(void);
Run Code Online (Sandbox Code Playgroud)
libhello.c
#include <stdio.h>
void hello(void) {
printf("Hello, library world.\n");
}
Run Code Online (Sandbox Code Playgroud)
我已经在终端中使用了命令
gcc demo_use.c -o test
Run Code Online (Sandbox Code Playgroud)
错误 体系结构x86_64的未定义符号:“ _ hello”,
引用自:ccZdSQP3.o中的_main
ld:找不到架构x86_64的符号collect2:ld返回1退出状态
您需要将两个源文件一起编译以生成二进制文件。使用
gcc demo_use.c libhello.c -o test
Run Code Online (Sandbox Code Playgroud)
否则,hello()将缺少功能的定义。因此,在链接时,链接器将引发undefined symbol错误。
| 归档时间: |
|
| 查看次数: |
8623 次 |
| 最近记录: |