g++からこれらのエラーメッセージを解読するのに問題があります
../upenn-cis553/ls-routing-protocol/ls-routing-protocol.cc:533:29: error: variable ‘ns3::Ipv4RoutingTableEntry route’ has initializer but incomplete type
../upenn-cis553/ls-routing-protocol/ls-routing-protocol.cc:533:64: error: invalid use of incomplete type ‘struct ns3::Ipv4RoutingTableEntry’
これが私のls-routing-protocol.hファイルです:
#include "ns3/ipv4.h"
#include "ns3/ipv4-routing-protocol.h"
#include "ns3/ipv4-static-routing.h"
#include "ns3/object.h"
#include "ns3/packet.h"
#include "ns3/node.h"
#include "ns3/socket.h"
#include "ns3/timer.h"
#include "ns3/ping-request.h"
#include "ns3/penn-routing-protocol.h"
#include "ns3/ls-message.h"
#include <vector>
#include <map>
...
private:
...
Ptr<Ipv4StaticRouting> m_staticRouting;
...
そして、ここにls-routing-protocol.ccファイルからの関連するスニペットがあります。
#include "ns3/ls-routing-protocol.h"
#include "ns3/socket-factory.h"
#include "ns3/udp-socket-factory.h"
#include "ns3/simulator.h"
#include "ns3/log.h"
#include "ns3/random-variable.h"
#include "ns3/inet-socket-address.h"
#include "ns3/ipv4-header.h"
#include "ns3/ipv4-route.h"
#include "ns3/uinteger.h"
#include "ns3/test-result.h"
#include <sys/time.h>
using namespace ns3;
void
LSRoutingProtocol::AuditRoutes ()
{
int i;
int n = m_staticRouting->GetNRoutes();
for (i=0; i < n; i++)
{
Ipv4RoutingTableEntry route = m_staticRouting->GetRoute(i); // ERROR
...
}
...
}
ご存知の方もいらっしゃると思いますが、私はns-3を使用しています。私は多くの場所でエラーを調べましたが、アドバイスのほとんどは、いくつかの構造体を適切に宣言することでした。ただし、このコードでは構造体を直接使用していません(または、少なくとも私が知っていることではありません)。スマートポインタの使用に問題があると思い始めていますが、よくわかりません。
また、何か助けになる場合:ipv4_static_routing.hのドキュメント