0

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

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

谢谢!

4

1 回答 1

2

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

如果您尝试同时包含winsock.hand winsock2.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

于 2012-05-18T11:18:09.143 回答