重复错误:C文件包含

时间:2012-05-11 21:01:20

标签: c

我的一个问题,因为我对C很陌生,就是避免出现重复错误的方法。基本上,当我在Netbeans中构建项目时,如果我在项目中有文件并且还包含它,我就会收到该错误。

定义静态函数,是一种避免它的正确方法吗?还有哪些其他解决方案?感谢

2 个答案:

答案 0 :(得分:2)

.c / .cpp文件不应包括在内。

将声明移至公共头文件并包含该文件。

答案 1 :(得分:1)

正如K. Horvath所说,你不应该在另一个中包含一个c文件。这意味着您必须为每个.c提供.h,将.c文件编译为目标文件,然后根据需要包含.h文件,并将所有对象与包含main()的.c一起编译。你仍然可以在.h声明中得到重复,但这是包含警卫进来的地方。

#ifndef MY_HEADER
#define MY_HEADER

// all your type definitions, function prototypes, etc

#endif

WRT首先编译每个.c,这是 gcc 的一个示例:你有一个util.c文件,其中包含你想在main.c中使用的各种函数;那么util.c应该在main.c中有一个相应的util.h #include。然后:

gcc -Wall -g -c util.c

" -Wall"启用编译器警告

" -g"包括调试器符号

" -c"将生成.o(未链接的中间对象)文件而不是普通的可执行文件。

现在:

gcc -Wall -g util.o main.c

这会编译main.c并包含util.c中编译成util.o的东西。

由于您使用netbeans,这可能是理论上的 - 通常IDE会为您做所有这些。但是,了解基本过程可能会使您更容易理解您的IDE;)