直到最近我还没有任何真正的“需要”,但是我试图弄清楚如何将函数分为多个头文件/文件。甚至最简单的事情似乎也无法像我想的那样起作用。
我有以下代码:
main.c
#include <stdio.h>
#include "hdr.h"
int main(void)
{
test();
return 0;
}
hdr.h
int test(void);
hdr.c
int test(void)
{
printf("Hello, world!\n");
}
当我尝试使用Pelles C( cc )进行编译时,出现错误“未解析的外部”:
main.c
polink.exe main.obj
POLINK: error: Unresolved external symbol '_test'.
POLINK: fatal error: 1 unresolved external(s).
我使用的命令行是:
cc -x main.c
这是为什么?我可以更改代码中的某些内容以避免触摸命令行吗?还是我总是必须先单独构建自定义标头材料?
答案 0 :(得分:2)
main.c
#include <stdio.h>
#include "hdr.h"
int main(void)
{
test();
return 0;
}
hdr.h
int test(void);
hdr.c
#include <stdio.h> // add header file
int test(void)
{
printf("Hello, world!\n");
return 0;
}
使用命令编译:
cc main.c hdr.c
然后您将找到一个名为:a.out的文件,使用命令运行它:
./a.out
或者您也可以这样:
cc -g -o main main.c hdr.c
./main