【问题标题】:Error compiling INET framework for omnet++为 omnet++ 编译 INET 框架时出错
【发布时间】:2016-06-22 13:18:04
【问题描述】:

我正在尝试在 OMNeT++ 5.0 上编译最新的 INET 3.3.0。我正在运行 Arch Linux Linux arch 4.5.4-1-ARCH #1 SMP PREEMPT Wed May 11 22:21:28 CEST 2016 x86_64 GNU/Linux

请注意,这适用于我的笔记本电脑,也运行 Arch Linux。但是在我的桌面上它失败了。

OMNeT++ 已安装并且可以运行,我可以毫无问题地运行示例项目。

但是,当我编译 INET 时,它总是失败。我已经尝试通过回答yes 来让 IDE 自行完成这一切,以安装最新的 INET。我自己下载了它,作为项目导入,右键单击并让它build project,然后我求助于进入INET目录,发出make makefilesmake MODE=release -j4,但这一切都会导致以下错误:

inet/common/serializer/ipv4/IPv4Serializer.cc:410:129: note: in C++11     destructors default to noexcept
inet/common/serializer/sctp/SCTPSerializer.cc
inet/common/serializer/tcp/TCPSerializer.cc
inet/common/serializer/udp/UDPSerializer.cc
In file included from     inet/common/serializer/sctp/SCTPSerializer.cc:28:0:
./inet/common/serializer/sctp/headers/sctphdr.h:415:22: error:     flexible array member in union
         uint8_t info[];
                  ^

以前版本的 INET 会导致不同的错误,但都不起作用。有人知道吗?

【问题讨论】:

  • 系统上的 GCC 版本号是多少?这似乎是一个 C++ 兼容性问题。可能 GCC 是旧工具?
  • 不,gcc 是版本gcc version 6.1.1 20160602 (GCC)。如果有的话可能太新了?
  • 是的。 Inet 未使用 GCC 6.x 进行测试
  • 我将降级 gcc 并尝试使用旧版本。你知道肯定支持哪个版本吗?
  • 我已经从 AUR 安装了 gcc49,并试图通过发出 make CC=gcc-4.9(这是 gcc49 包提供的二进制文件)来告诉 Makefile 使用它的二进制文件。无济于事。可能是 Makefile 没有使用 CC 变量。

标签: linux omnet++ inet


【解决方案1】:

您只需修改sctphdr.h中的代码并使其成为

  uint8_t info [128];

【讨论】:

    猜你喜欢
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    相关资源
    最近更新 更多