Ошибка компиляции инфраструктуры INET для omnet ++

Я пытаюсь скомпилировать самую последнюю версию INET 3.3.0 на OMNeT ++ 5.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, он всегда терпит неудачу. Я попытался позволить IDE сделать все это самостоятельно, ответив yes на ее предложение установить последнюю версию INET. Я сам загрузил его, импортировал как проект, щелкнул правой кнопкой мыши и позволил build project, и я пошел в каталог INET, выдав make makefiles, make 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 приводили к различным ошибкам, ни одна из них не работает. Есть у кого-нибудь идеи?


person kunterbunt    schedule 22.06.2016    source источник
comment
Какой номер версии GCC установлен в системе? Похоже, это проблема совместимости с C ++. Возможно, GCC - старый инструмент?   -  person Rudi    schedule 04.07.2016
comment
Нет, gcc - это версия gcc version 6.1.1 20160602 (GCC). Во всяком случае, это могло быть слишком новым?   -  person kunterbunt    schedule 04.07.2016
comment
Ага. Inet не тестировался с GCC 6.x   -  person Rudi    schedule 05.07.2016
comment
Я перейду на более раннюю версию gcc и попробую использовать более старую версию. Вы знаете, какая версия точно поддерживается?   -  person kunterbunt    schedule 29.07.2016
comment
Я установил gcc49 из AUR и попытался указать Makefile использовать его двоичный файл, выполнив make CC = gcc-4.9 (это двоичный файл, предоставленный пакетом gcc49). Но безрезультатно. Возможно, Makefile не использует переменную CC.   -  person kunterbunt    schedule 05.08.2016


Ответы (1)


вам нужно просто изменить код в sctphdr.h и сделать его

  uint8_t info [128];
person Aziz    schedule 08.07.2016