当我编译时,我得到多个定义错误,例如
`__data_start'的多重定义 `_init'的多重定义
我在论坛上阅读并在答案中讨论了makefile,但我没有使用makefile编译,只是gcc。
我的编译声明是:
gcc -Wall -Werror -O -o textbuffer.c textbuffer
答案 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