编译时出现多个定义错误

时间:2015-04-02 07:40:44

标签: c compilation

当我编译时,我得到多个定义错误,例如

  

`__data_start'的多重定义   `_init'的多重定义

我在论坛上阅读并在答案中讨论了makefile,但我没有使用makefile编译,只是gcc。

我的编译声明是:

gcc -Wall -Werror -O -o textbuffer.c textbuffer

2 个答案:

答案 0 :(得分:0)

问题在于您的编译声明

gcc -Wall -Werror -O -o textbuffer.c textbuffer

根据gcc manual-o开关用于表示输出文件

  

-o file

     

将输出放在文件文件中。这适用于生成的任何类型的输出,无论是可执行文件,目标文件,汇编程序文件还是预处理的C代码。

因此,实际上,您的编译语句应该看起来像

 gcc -Wall -Werror -O textbuffer.c -o textbuffer

答案 1 :(得分:0)

**使用:在声明中**

#ifndef
#define __data_start
#define __init
#endif