Ошибка при построении касталии: вызов перегруженной функции неоднозначен - PullRequest
0 голосов
/ 27 апреля 2019

Я ввел castalia 3.3 в omnet ++ 4.6.Но я получаю эту ошибку при сборке с make, поэтому CastaliaBin не создается, и я не могу использовать проект castalia.

src / wirelessChannel / traceChannel / TraceChannel.cc: 35: 33: error: callперегруженного 'open (cPar &)' неоднозначно

traceFile.open (par ("traceFile"));

Я не эксперт в C ++Я не могу это исправить

Это локализация ошибки и затем функция open ()

ofstream & DebugInfoWriter::getStream(void)
{
    if (!theFile.is_open())
        theFile.open(fileName.c_str(), ios::app);
    theFile.setf(ios::left);

    return theFile;
}

void
  open(const char* __s,
   ios_base::openmode __mode = ios_base::out | ios_base::trunc)
  {
if (!_M_filebuf.open(__s, __mode | ios_base::out))
  this->setstate(ios_base::failbit);
else

  this->clear();
  }

1 Ответ

2 голосов
/ 29 апреля 2019

Ответ на этот вопрос также существует на форуме Castalia (Google Group).

Ошибка появилась, когда в Ubuntu использовались более новые версии компилятора GCC. Не забывайте, что Castalia 3.3 уже старая (выпущена в 2013 году). Простое кастинг решает проблему.

traceFile.open((const char *)par("traceFile"));

Но вам не нужно менять код. Вместо этого просто получите последний код из репозитория Castalia Github. Он содержит это исправление плюс другие мелкие исправления.

Всегда используйте последнюю версию из хранилища Castalia Github .

...