在C中创建多个文件并链接它们
我正在使用C和Linux cc编译器。我要做的是创建一个包含main函数的main.c文件。我还想创建一个特殊的.c文件,它没有main函数,相反,它只有一些特殊的函数,我想在需要时在main.c中调用这些函数 我有更多的Java实践,例如,在Java中,我只需要创建两个类,并为此使用继承 但由于我是C语言的新手,我不知道该怎么做。我知道可能有一种方法可以将.h文件与库一起使用,但我不知道如何在这里使用它在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是具有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