[工程构建] mutiple definition of 问题

描述:

mutiple definition of,顾名思义,是遇到了符号重复定义的问题,这个问题会在链接阶段出现:

  • 如果符号是 变量,则会导致链接失败;
  • 如果符号是函数,则在Windows下会warning提示然后使用第一个出现的符号,如果是在Linux下,会链接失败。

快速排查:

确定是不是有 #include  xxx.c 这种包含 源文件的语法

因为全局变量和函数实现正常情况下都是在源文件中定义的,如果使用 #include 来包含,一定会造成符号重复的情况。解决方法就是不要使用 #include xxx.c 这种语法。

确定头文件是否有防重复包含语句

头文件要如下代码保护

#ifndef XXX
#define XXX

...

#endif

这可以防止头文件的重复包含。

猜你喜欢

转载自blog.csdn.net/ykun089/article/details/120570619