单独构建C程序
我有两个C文件(第一个文件需要另一个) 我应该使用单独构建C程序,c,c-preprocessor,C,C Preprocessor,我有两个C文件(第一个文件需要另一个) 我应该使用#包括“XXX.C”,但我如何单独创建.obj文件,然后连接它(类似于Borland的项目)?我读了一些关于链接a,b命令的内容,但它不起作用,我找不到任何参考 谢谢大家! 不,您不应该使用#include“XXX.c”。只应包括标题;代码文件应该彼此分开编译 具体操作方式取决于编译器,但通常您只需将文件逐个列出给编译器,如下所示: gcc main.c helpers.c functions.c 不,您不应该使用#include“XXX.c”
#包括“XXX.C”
,但我如何单独创建.obj文件,然后连接它(类似于Borland的项目)?我读了一些关于链接a,b
命令的内容,但它不起作用,我找不到任何参考
谢谢大家! 不,您不应该使用
#include“XXX.c”
。只应包括标题;代码文件应该彼此分开编译
具体操作方式取决于编译器,但通常您只需将文件逐个列出给编译器,如下所示:
gcc main.c helpers.c functions.c
不,您不应该使用
#include“XXX.c”
。只应包括标题;代码文件应该彼此分开编译
具体操作方式取决于编译器,但通常您只需将文件逐个列出给编译器,如下所示:
gcc main.c helpers.c functions.c
对于所需的每个对象文件,都应该有一个.h()和(至少一个).c(带实现)文件
有关头文件的详细信息,请转到
那么你只需要做:
#include "XXX.h"
包括头文件,而不是.c文件 对于所需的每个对象文件,都应该有一个.h()和(至少一个).c(带实现)文件
有关头文件的详细信息,请转到
那么你只需要做:
#include "XXX.h"
包括头文件,而不是.c文件 你不应该使用#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”。如果你想单独编译它。
您必须编写一个“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上定义的函数。您真的尝试打开任何搜索引擎吗?这是一个非常基本和普遍的问题。尝试搜索
ld
或makefile
您是否真的尝试打开任何搜索引擎?这是一个非常基本和普遍的问题。尝试用标题搜索ld
或makefile
是我没有任何问题。它也适用于C文件,但我想单独构建它。我有代码::Block。我尝试寻找makefile或ld…是的,标题我没有任何问题。它也适用于C文件,但我想单独构建它。我有代码::Block。我尝试查找makefile或ld。。。