【发布时间】:2019-01-26 22:54:43
【问题描述】:
我在一个有多个 c 文件的项目上工作。每个 c 文件都有自己的头文件。现在我想把所有的c文件放在一起。 作为准备,我尝试了以下方法:
这将是我的示例 c 代码 (function.c):
#include <stdio.h>
#include "function.h"
void output()
{
printf("Thats a text\n");
}
这就是相关的头文件(function.h):
//header function.h
#ifndef FUNCTION_H_
#define FUNCTION_H_
#endif // FUNCTION_H_
这就是我的 main.c:
#include "function.h"
int main()
{
output();
return 0;
}
我希望得到以下输出:
“那是一段文字”
但我只收到以下错误:
对“输出”的未定义引用
我在这里做错了什么?
非常感谢!
【问题讨论】:
-
为什么你的标题是空的?你如何编译和链接?
-
把
void output();放到你的头文件#define之后。这将为 other 文件(例如main.c)所需的函数创建声明 -
和一起编译你的文件
cc function.c main.c -o main.
标签: c header linker c-preprocessor main