合并两个Qt / C ++项目:重新定义错误

时间:2012-05-18 10:29:52

标签: c++ qt4 redefinition

我在合并两个单独编译的项目时遇到问题。 我创建了一些类(Qt和C ++)来管理两个机械阶段(第一个项目)和一个类/接口用于激光扫描仪(第二个项目)。 当我在第一个项目中导入类/接口时,编译器在一些Windows api类上给了我很多重定义错误(第二个项目使用类作为winsock2)。

有人可以帮我找到我的错误吗?不仅是我的“语法”错误;)

谢谢!

1 个答案:

答案 0 :(得分:2)

只需clean项目,重建并再次运行。这可能发生的一种可能性是您可能在任何项目中使用过以前版本的库,现在合并两个项目后,您可能在其他项目中使用最新版本的库。您已经合并的项目已经存在的已编译二进制文件将查找不同版本的库,但您可能在第二个项目中包含了另一个版本的版本,反之亦然!!合并后两者似乎都在同一个项目中!因此,请尝试清理项目,仅使用最新版本的库并重建并运行。

如果您尝试同时包含winsock.hwinsock2.h,则肯定会发生此错误。因为winsock2.h是对winsock.h的完全重写。所以你肯定会得到重新定义错误。

一种可能的解决方案是..

  Try to include winsock2.h before you include the header file(s) which is 
  including winsock.h.That will do.

Try using only 1 version of it