编译C文件时出现问题

时间:2017-01-21 17:30:54

标签: c gcc

我正在尝试将这三个文件链接在一起。这是一个教学的例子,我尝试了编译这三个文件的不同组合,但我不知道出了什么问题。即使有这个简单代码的东西是错误的。

我想要了解的是如何在不同的文件中分隔函数的声明,以便从主文件中的头文件中包含它。或者至少这是我想到的。我的老师设置了一个例子,以便有一个.h文件和两个.c文件:这里是......

foo.c的

int foo(int x){
return x==42 ? 1 : 0;
}

foo.h中

extern int foo(int);

使用-foo.c的

#include <stdio.h>
#include "foo.h"
int main(){
printf("foo(42) == %d \n", foo(42));
getchar();
return 0;
}

我希望有人可以指导我完成这项工作,我不需要另外的解决方案,请帮助我解决这3个唯一的文件,因为老师的目的就是这个。

1 个答案:

答案 0 :(得分:0)

您可以使用以下命令编译它:

gcc -o use-foo use-foo.c foo.c

然后您可以使用以下命令运行它:

./use-foo

请确保您的所有文件都位于同一目录中,即从该目录调用gcc并在系统上安装gcc。

关于包含文件和交叉编译的更多建议: 所有的头文件(如foo.h)都应该包含防护,就像那样

#ifndef __FOO__
#define __FOO__

int foo (int);

#endif

这将阻止编译器在您的代码中多次添加头文件。

另一个建议是将foo.h包含在你的foo.c代码中。