linuxgcc编译多个⽂件,如何在gcclinux中编译多个.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’
linux下gcc编译的四个步骤
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⽂件中头⽂件中定义的变量.那么有⼈可以帮助我为什么它仍然给我错误?