如何使用标题将多个c文件链接在一起?
我在一个有多个c文件的项目上工作。每个c文件都有自己的头。现在我想把所有的c文件放在一起。 作为准备,我尝试了以下方法: 这是我的示例c代码(function.c): 这是我的主要观点。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函数,以便在其他模块中可
#include "function.h"
int main()
{
output();
return 0;
}
我预计会有以下产出:
“这是一段文字”
但我只收到以下错误:
对“输出”的未定义引用
我做错了什么
非常感谢 您需要在标题中使用foroutput
函数,以便在其他模块中可见
您需要修改模块(源文件function.c
),以便实际提供主模块使用的输出的定义
例如,您可以直接使用以下工具将它们编译在一起:
gcc main.c function.c -o my_out
您可能还需要查看。您需要在标题中使用foroutput
函数,以便在其他模块中可见
您需要修改模块(源文件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
(全部完成)为什么标题为空?如何编译和链接?Putvoid output()在#define
之后,将code>插入头文件。这将为其他文件(例如main.c
)所需的函数创建声明,并一起编译文件cc function.c main.c-o main
。为什么头是空的?如何编译和链接?Putvoid 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