我有两个 C 文件(第一个文件需要另一个)。
我应该使用#include "XXX.C"
.obj 文件,但如何单独制作然后连接它(类似于 Borland 的项目)?我读了一些关于link a, b
命令的东西,但它不起作用,我找不到任何参考。
谢谢!
我有两个 C 文件(第一个文件需要另一个)。
我应该使用#include "XXX.C"
.obj 文件,但如何单独制作然后连接它(类似于 Borland 的项目)?我读了一些关于link a, b
命令的东西,但它不起作用,我找不到任何参考。
谢谢!
你不应该使用#include "XXX.C"。如果要单独编译。您必须编写一个包含所有要调用的函数的“XXX.h”。
之后,您可以单独编译文件:
gcc -c YYY.c -o yyy.o
gcc -c XXX.c -o xxx.o
如果要一次编译和链接:
gcc xxx.c yyy.c -o xxx
或者如果你想编译 xxx.c 并使用之前生成的目标文件:
gcc xxc.c yyy.o -o xxx
甚至:
gcc xxx.o yyy.o -o xxx
在最后一个示例中,gcc 将调用链接器,因为没有要编译的源代码。
但是如果你有两个或三个以上的文件,接下来要检查的是如何使用 Makefile。
例子:
xxx.c:
#include "yyy.h"
int x(int a)
{
return a + 1;
}
int main(int argc, char **argv)
{
x(1);
y(2);
return 0;
}
yyy.c:
int y(int b)
{
return b + 2;
}
yyy.h:
#pragma once
int y(int b);
可以单独编译:
gcc -c yyy.c -o yyy.o
gcc xxx.c yyy.o -o xxx
在本例中,xxx.c 调用定义在 yyy.c 上的函数。
不,你不应该使用#include "XXX.c"
. 只应包含标题;代码文件应该彼此分开编译。
具体如何完成取决于您的编译器,但通常您只需将文件一一列出给编译器,如下所示:
gcc main.c helpers.c functions.c