linux gcc编译多个文件,如何在gcc linux中编译多个.c和.h文件?

所以我有一个源mainClass.c,我在其中定义了主要的.我有一个头文件class1.h和class1.c中class1.h中定义的所有函数的实现.我在class1.h中有两个变量(全局),名为cond和mutex,现在正在class1.c中使用,可能在将来我也将在mainClass.c中使用它.

现在编译所有源文件以生成一个目标文件我正在做如下的事情:

gcc -Wall -pthread -I / home / 2008 / ariarad / mainClass1 mainClass1.c class1.c -o out

/ home / 2008 / ariarad / mainClass1是我的所有头文件和源文件所在的位置,我在其中一个.c文件中使用pthead.h.即使我把它包括在那里它抱怨所以我必须包括它.

现在当我运行上面的命令时,我得到以下错误:

class1.c:3:16: error: redefinition of ‘cond’

class1.h:66:16: note: previous definition of ‘cond’ was here

class1.c:4:17: error: redefinition of ‘mutex’

class1.h:67:17: note: previous definition of ‘mutex’ was here

以防我在class1.h周围有一个ifndef和endif块以避免多次包含.我绝对不会重新定义.c文件中头文件中定义的变量.那么有人可以帮助我为什么它仍然给我错误?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值