我有这个头文件(称为 ft_opp.h),我试图在两个不同的 .c 文件中 #include :
#ifndef __FT_OPP_H__
# define __FT_OPP_H__
t_opp gl_opptab[] = {{"-", &ft_sub}, \
{"+", &ft_add}, \
{"*", &ft_mul}, \
{"/", &ft_div}, \
{"%", &ft_mod}, \
{"", &ft_usage}};
#endif /* __FT_OPP_H__ */
我别无选择,只能使用未更改的这个文件来定义 gl_opptab 数组(它是学校练习的一部分,我应该按原样使用这个文件)。
但是,编译后我不断收到来自 GCC 的以下消息:
重复符号 _gl_opptab 在:/var/folders/zz/zyxvpxvq6csfxvn_n0000hvc00046v/T//ccrPWPyP.o /var/folders/zz/zyxvpxvq6csfxvn_n0000hvc00046v/T//cc2JUzLs.o ld:1 个重复符号返回架构 x86_64 退出状态 collect2:ld制作:* [ft_advanced_do-op] 错误 1
我尝试将其仅包含在一个文件中并extern t_opp* gl_opptab
在另一个 .c 文件中使用。但这似乎不起作用。
我怎么能那样做?