如何使用标题将多个c文件链接在一起?

如何使用标题将多个c文件链接在一起?,c,header,linker,c-preprocessor,main,C,Header,Linker,C Preprocessor,Main,我在一个有多个c文件的项目上工作。每个c文件都有自己的头。现在我想把所有的c文件放在一起。 作为准备,我尝试了以下方法: 这是我的示例c代码(function.c): 这是我的主要观点。c: #include "function.h" int main() { output(); return 0; } 我预计会有以下产出: “这是一段文字” 但我只收到以下错误: 对“输出”的未定义引用 我做错了什么 非常感谢 您需要在标题中使用foroutput函数,以便在其他模块中可

我在一个有多个c文件的项目上工作。每个c文件都有自己的头。现在我想把所有的c文件放在一起。 作为准备,我尝试了以下方法:

这是我的示例c代码(function.c):

这是我的主要观点。c:

#include "function.h"

int main()
{
    output();

    return 0;
}

我预计会有以下产出:

“这是一段文字”

但我只收到以下错误:

对“输出”的未定义引用

我做错了什么

非常感谢

您需要在标题中使用for
output
函数,以便在其他模块中可见

您需要修改模块(源文件
function.c
),以便实际提供主模块使用的
输出的定义

例如,您可以直接使用以下工具将它们编译在一起:

gcc main.c function.c -o my_out
您可能还需要查看。

您需要在标题中使用for
output
函数,以便在其他模块中可见

您需要修改模块(源文件
function.c
),以便实际提供主模块使用的
输出的定义

例如,您可以直接使用以下工具将它们编译在一起:

gcc main.c function.c -o my_out
您也可以查看。

您的标题应该是

//header function.h

#ifndef FUNCTION_H_
#define FUNCTION_H_
void output();

#endif // FUNCTION_H_
编译如下: (实际标志可能取决于使用的编译器)

(创建main.o)

(创建function.o)

(创建.out或任何系统默认值)

…或者像其他人提到的那样:

cc main.c function.c
(全部完成)

您的标题应该是

//header function.h

#ifndef FUNCTION_H_
#define FUNCTION_H_
void output();

#endif // FUNCTION_H_
编译如下: (实际标志可能取决于使用的编译器)

(创建main.o)

(创建function.o)

(创建.out或任何系统默认值)

…或者像其他人提到的那样:

cc main.c function.c

(全部完成)

为什么标题为空?如何编译和链接?Put
void output()#define
之后,将code>插入头文件。这将为其他文件(例如
main.c
)所需的函数创建声明,并一起编译文件
cc function.c main.c-o main
。为什么头是空的?如何编译和链接?Put
void output()#define
之后,将code>插入头文件。这将为其他文件(例如
main.c
)所需的函数创建声明,并一起编译文件
cc function.c main.c-o main
cc -c function.c
cc main.o function.o
cc main.c function.c