我在项目中包含了TCPSOcket.h标题。
但是当我尝试使用对象时
TCPSocket mysocket;
并构建项目,收到以下错误:' TCPSocket未在此范围内声明'
有什么建议吗?
感谢。
答案 0 :(得分:0)
您使用哪个版本的INET?
如果直接在INET中实现代码(位于INET src文件夹中的源文件或对现有INET文件的修改),您是否确保插入了头文件的完整路径?例如,对于INET版本3.5:
#include "inet/transportlayer/contract/tcp/TCPSocket.h"
此行为在当前的OMNeT版本中发生了变化,因为删除了包含文件的深层搜索魔法(在5.1及其测试版和候选版本中),支持包含从项目根目录开始的完整路径。
如果您有一个单独的项目,您是否检查过引用了INET项目?此外,您的包含路径看起来会有所不同,因为与分离的INET项目相比,您的源位于不同的根文件夹中。
您使用的是命名空间吗?如果是这样,你检查了那里的任何不一致吗?
答案 1 :(得分:0)
我使用的是Omnet ++ 5.0
我有一个单独的项目,是的,我在项目的属性中引用了inet项目。
我的项目与INET在同一工作区中。这是我的一些代码,我使用TCP对象:
#include "PC.h"
#include "myHeader_m.h"
#include "TCPSocket.h"
Define_Module(PC);
void PC::initialize()
{
cMessage * reminder = new cMessage("Interval");
.....
.....
.....
//TCPSocket msocket = new TCPSocket();
TCPSocket mysocket;
}
这是makefile中的包含路径
# C++ include paths (with -I)
INCLUDE_PATH = -I../inet/src -I../inet/src/inet/transportlayer/contract/tcp -I. -Iresults
答案 2 :(得分:0)
<div *ngIf="location == '/home'">
This is content for the home page.
</div>
使用C ++命名空间INET
,所以在你的代码中你应该在类名之前添加namaspace,例如
inet
或者您可以将整个代码放在inet::TCPSocket mysocket;
中,例如:
namespace inet