C++导入标头
C++ import header
我有两个项目可以自己编译。
一个项目,包括对另一个项目的引用。
我正在使用Visual Studio 2012。一个项目是VS2010项目,另一个是使用VS2012创建的。不确定这是否相关。
不管怎样。当我包含"RTSPTestServer"时,我会收到这种类型的错误
如果这很重要,我会在这里发布代码,但我认为这是某种配置问题。
这两个项目都是C++Win32控制台应用程序。一个有一个RTSP类,另一个想要使用该类。这两个项目都可以在C++中自行编译。
1将RTSP导入包含VisionBase项目的VisionBase解决方案。2向VisionBase项目添加其他包含目录。3使用RTSP类,在VisionBase中完成Intellisense。4构建解决方案。
在这个阶段,我得到了错误。
错误380错误C2011:"netent":"struct"类型重新定义C:\Program Files(x86)\Windows Kits\8.0\Include\um\Winsock2.h 238 1 VisionBase
我正在使用WinSock.h和WinSock2.h
虽然我在谷歌上搜索过,但我找不到为什么我会出现重新定义错误。这两个项目都将winsock作为各自标准外部库的一部分。但是,这仅在RTSP项目内部引用。只有当我尝试导入RTSP时才会出现错误。请帮忙,读了这么多关于这个的文章,我都快晕头转向了。
#include
的顺序在WinSock编程中非常重要(我相信这是常见问题之一。)请参阅此处的讨论:
- 在<winsock.h>并且<winsock2.h>
重新定义错误意味着正在发生这种事情:
struct netent{...};
...
struct netent{...}; // error C2011
当该结构在一个包含两次的没有包含保护的头中声明时,或者如果您使用同一库的多个版本,或者有无数其他可能性,就会发生这种情况。
我不熟悉最近的VS编译器,但如果它们像其他现代编译器一样,那么错误消息会告诉你它在哪里看到多个定义,以及它所在的包含链。这应该有助于你缩小问题范围。
顺便说一句,"导入"一词在C++中没有任何意义。你可能指的是"include",它与其他语言中的"import"具有相同的目的,但它的实现方式在出现问题时会有很大不同。#include <header.h>
实际上将复制/粘贴header.h
的内容。
- 尝试导入pybind-opencv模块时出现libgtk错误
- 导入库可以跨dll版本工作吗
- 建议在运行时将带有类实例的列表从c++导入qml
- 导入/导出变量时出错
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 将QT项目导入Visual Studio 2019会给我带来很多LNK2001错误
- 是否可以将函数导入命名空间,但不能导出它?
- 如何将 CLion C++ 项目导入 Visual Studio?
- Python 3.8 不能与 Pybind11 一起导入 [Windows]
- 无法将标准库导入本机 android 项目中的头文件
- 尝试了解在导入的静态方法上使用删除方法时的错误
- 在 python 模块中导入子模块时PyImport_Import失败
- 将 C# DLL 导入 C++ 以用于 JNI
- 使用 QSslCertificate 在 Qt 中正确导入 pkcs12
- 在从Qt调用的Python脚本中导入OpenCV崩溃
- 编译boost_python扩展无法在 python 2.7 中导入
- 如何在安卓工作室中将c ++头文件从一个文件夹导入到另一个文件夹?
- Dll在同一解决方案中从 c# 项目导入到 c++ 项目
- C++20 使用 Visual Studio 编译模块:不编译或导入 ixx 文件
- 我可以将cocos项目导入虚幻4吗?