在C中创建多个文件并链接它们

在C中创建多个文件并链接它们,c,linux,command-line-interface,C,Linux,Command Line Interface,我正在使用C和Linux cc编译器。我要做的是创建一个包含main函数的main.c文件。我还想创建一个特殊的.c文件,它没有main函数,相反,它只有一些特殊的函数,我想在需要时在main.c中调用这些函数 我有更多的Java实践,例如,在Java中,我只需要创建两个类,并为此使用继承 但由于我是C语言的新手,我不知道该怎么做。我知道可能有一种方法可以将.h文件与库一起使用,但我不知道如何在这里使用它 非常感谢您的帮助。我将举例说明: c是具有main函数的文件 h包含您希望在主函数中使用的

我正在使用C和Linux cc编译器。我要做的是创建一个包含main函数的main.c文件。我还想创建一个特殊的.c文件,它没有main函数,相反,它只有一些特殊的函数,我想在需要时在main.c中调用这些函数

我有更多的Java实践,例如,在Java中,我只需要创建两个类,并为此使用继承

但由于我是C语言的新手,我不知道该怎么做。我知道可能有一种方法可以将.h文件与库一起使用,但我不知道如何在这里使用它


非常感谢您的帮助。

我将举例说明:

c是具有main函数的文件

h包含您希望在主函数中使用的函数的所有声明。 helper.c具有以下定义

现在,从技术上讲,您可以在helper.h中定义函数,但这不是一个好的实践

然后,您需要:

#include "helper.h"  
在主.c程序之上。 最后,您需要一起编译所有的.c文件

比如:gcc main.c helper.c-o输出

//main.c:
#include <stdio.h>
#include <helper.h>
int main()
{
int squareMe=5;
squareMe = helperFn(squareMe);
printf("%d", squareMe);

}
最后在helper.c中:

#include "helper.h"

int helperFn(int i)
{
 return i*i;
}

假设special.c如下所示:

#include <stdio.h>

void special_func()
{
    printf("calling special_func\n");
}
这将生成特殊的.o。那么假设main中有这个。c:

#include <stdio.h>
#include "special.h"

int main()
{
    printf("in main\n");
    special_func();
    return 0;
}
这是一个功能原型。它声明函数(即告诉您参数的数量和类型以及返回类型),而不实际定义它。这允许从其他编译单元调用它

现在您可以自己编译main.c了:

gcc -c special.c
gcc -c main.c
这将创建main.o。现在您可以链接到一起:

gcc -o program main.o special.o

您要执行的操作的搜索词是单独编译。
gcc -c main.c
gcc -o program main.o special.o