-1

当我make使用 Castalia-3.2 和 CTP时出现此错误https://code.google.com/p/ctp-castalia/。我有 omnetpp-4.6。

命令 -omnetpp工作正常。我能够运行像 dyna 这样的示例示例。

未集成 CTP 时 Castalia-3.2 也可以正常工作。

当我集成 CTP 时,Castalia -make给出了错误(最后提到)。

我遵循了 CTP 协议提供的 Readme.txt。

1) Copy CtpTest in CASTALIA_HOME/Simulations
2) Copy ctpTestingApplication CASTALIA_HOME/src/node/application/
3) Copy ctpNoe in CASTALIA_HOME/src/node/communication/routing/
4) Copy cc2420Mac in CASTALIA_HOME/src/node/communication/mac/
5) make clean
6) ./makemake
7) make

你能告诉我我做错了什么吗?

  In file included from src/node/communication/mac/cc2420Mac/CC2420Mac.h:108:0,
             from src/node/communication/mac/cc2420Mac/CC2420Mac.cc:104:
    src/node/communication/mac/cc2420Mac/TosEnvironment.h:11:17: error: conflicting declaration ‘typedef uint8_t error_t’
      typedef uint8_t error_t;
             ^
     In file included from /usr/include/c++/4.8/cerrno:41:0,
             from /usr/include/c++/4.8/ext/string_conversions.h:44,
             from /usr/include/c++/4.8/bits/basic_string.h:2815,
             from /usr/include/c++/4.8/string:52,
             from /usr/include/c++/4.8/stdexcept:39,
             from /usr/include/c++/4.8/array:38,
             from /usr/include/c++/4.8/tuple:39,
             from /usr/include/c++/4.8/bits/stl_map.h:63,
             from /usr/include/c++/4.8/map:61,
             from src/node/communication/mac/VirtualMac.h:19,
             from src/node/communication/mac/cc2420Mac/CC2420Mac.h:106,
             from src/node/communication/mac/cc2420Mac/CC2420Mac.cc:104:
 /usr/include/errno.h:68:13: error: ‘error_t’ has a previous declaration as ‘typedef int error_t’
 typedef int error_t;
         ^
In file included from /usr/include/asm-generic/errno.h:4:0,
             from /usr/include/x86_64-linux-gnu/asm/errno.h:1,
             from /usr/include/linux/errno.h:1,
             from /usr/include/x86_64-linux-gnu/bits/errno.h:24,
             from /usr/include/errno.h:35,
             from /usr/include/c++/4.8/cerrno:41,
             from /usr/include/c++/4.8/ext/string_conversions.h:44,
             from /usr/include/c++/4.8/bits/basic_string.h:2815,
             from /usr/include/c++/4.8/string:52,
             from /usr/include/c++/4.8/stdexcept:39,
             from /usr/include/c++/4.8/array:38,
             from /usr/include/c++/4.8/tuple:39,
             from /usr/include/c++/4.8/bits/stl_map.h:63,
             from /usr/include/c++/4.8/map:61,
             from src/node/communication/mac/VirtualMac.h:19,
             from src/node/communication/mac/cc2420Mac/CC2420Mac.h:106,
             from src/node/communication/mac/cc2420Mac/CC2420Mac.cc:104:

src/node/communication/mac/cc2420Mac/TosEnvironment.h:23:5: error: expected identifier before numeric constant
 EBUSY = 3,
 ^
  src/node/communication/mac/cc2420Mac/TosEnvironment.h:23:5: error:     expected ‘}’ before numeric constant

 src/node/communication/mac/cc2420Mac/TosEnvironment.h:23:5: error:    expected unqualified-id before numeric constant
 In file included from src/node/communication/mac/cc2420Mac/CC2420Mac.h:108:0,
             from src/node/communication/mac/cc2420Mac/CC2420Mac.cc:104:

src/node/communication/mac/cc2420Mac/TosEnvironment.h:28:1: error: expected declaration before ‘}’ token

};
^
4

1 回答 1

2

网站上的问题跟踪器有一些已经解决的问题,与make.

其中一项修复建议如下:

  • CtpTestingApplication.ccCtpTestingApplication.h
  • 替换ApplicationGenericDataPacketApplicationPacket_CtpTestingApplication.cc
  • 注释掉整个update_packets_received()方法
  • declareOutput("My Stats", SN) ;从方法 中删除 update_ddr_perSN()并放在方法中declareOutput("My Stats") ;startup()

  • mac/cc2420Mac/CC2420Mac.cc

  • getRoutingInteractionControl()替换实例getNetMacInfoExchange()
  • 替换getMacInteractionControl()getMacRadioInfoExchange()
  • 在分配的右侧将 RSSI 与 LQI 交换(原始代码中的小错误)

可选,取决于平台(我必须为我的 Mac OSX 做)

  • mac/cc2420Mac/TosEnvironment.h ANDrouting/ctpNoe/components/TosEnvironment.h:79第 79 行替换 0x1000000000xffffffff

  • routing/ctpNoe/components/CtpForwardingEngine.cc

  • netPkt->getNetMacInfoExchange().source = selfAddress.c_str() ;用// ok替换第 1080 行
    netPkt->setSource(selfAddress.c_str()) ;// ok
  • getRoutingInteractionControl()替换实例getNetMacInfoExchange() (第 213、1053、1081 行)

  • routing/ctpNoe/components/CtpRoutingEngine.cc AND routing/ctpNoe/components/DualBuffer.ccAND routing/ctpNoe/components/LinkEstimator.cc

  • getRoutingInteractionControl()替换实例getNetMacInfoExchange()

PS:可能由于使用OMNET 4.6而引入了问题。较低版本(4.2)可能会更好地使用Castalia

于 2015-05-07T14:31:14.380 回答