我在我的項目中包含TCPSOcket.h標頭。Inet Socket Omnet ++
但是當我嘗試使用對象
的TCPSocket mysocket;
和建設項目,得到以下錯誤:
任何建議「的TCPSocket沒有在這個範圍內聲明」?
謝謝。
我在我的項目中包含TCPSOcket.h標頭。Inet Socket Omnet ++
但是當我嘗試使用對象
的TCPSocket mysocket;
和建設項目,得到以下錯誤:
任何建議「的TCPSocket沒有在這個範圍內聲明」?
謝謝。
INET
使用C++命名空間inet
所以在你的代碼,你應該添加namaspace一個類名之前,例如
inet::TCPSocket mysocket;
或者你可以在namespace inet
把你的整個代碼,例如:
namespace inet {
Define_Module(PC);
void PC::initialize() {
TCPSocket mysocket;
// ...
}
}
您使用哪種版本的INET?
如果直接在INET中實現代碼(位於INET src文件夾中的源文件或對現有INET文件的修改),是否確保插入了頭文件的完整路徑?例如,對於INET版本3.5:
#include "inet/transportlayer/contract/tcp/TCPSocket.h"
這種行爲在當前的OMNeT版本贊成改變,如包含文件深度搜索魔術被刪除(在5.1版本和其測試和發佈候選)與完整的包括從項目根目錄開始的路徑。
如果您有單獨的項目,是否檢查過INET項目是否被引用?此外,包含路徑看起來會有所不同,因爲與分離的INET項目相比,您的源位於不同的根文件夾中。
你在使用命名空間嗎?如果是這樣,你檢查了那裏的不一致嗎?
我用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;
}
這是在生成文件包含路徑
# C++ include paths (with -I)
INCLUDE_PATH = -I../inet/src -I../inet/src/inet/transportlayer/contract/tcp -I. -Iresults
歡迎來到StackOverflow。請幫助我們通過發佈您迄今爲止已嘗試的內容(即未編譯文件的代碼片段)來幫助您。有關其他建議,請參閱:[我如何問](https://stackoverflow.com/help/how-to-ask) – Forty3