【发布时间】:2012-05-18 10:29:51
【问题描述】:
我在合并两个单独编译的项目时遇到了问题。 我创建了一些类(Qt 和 C++)来管理两个机械阶段(第一个项目)和一个用于激光扫描仪的类/接口(第二个项目)。 当我在第一个项目中导入类/接口时,编译器在某些 Windows api 类上给了我很多重定义错误(第二个项目使用类作为 winsock2)。
有人可以帮我找出我的错误吗?不仅是我的“语法”错误;)
谢谢!
【问题讨论】:
-
你是否使用了一些 win api 头文件?在那种情况下,
#include顺序确实很重要:) -
在“stages 项目”中,我没有直接包含任何 Windows 头文件,但在“激光项目”中,我包含了激光 SDK 的两个头文件:第一个包含
winsock2.h和第二个标头,按此顺序,包括windows.h。我在网站的另一个问题中读到,我必须在winsock2.h之前包含windows.h。我试图更正标题,但项目没有编译。 -
别问我为什么,我把
winsock2.h从激光SDK的头部排除了。该项目已编译,现在可以正常工作。我不明白为什么,但它有效...... -
在 C++ 世界中发生了奇怪的事情;)
标签: c++ qt4 redefinition