передал в метод const char *, но вместо этого получил ошибку char const * - PullRequest
0 голосов
/ 06 августа 2011

Я столкнулся с проводной проблемой в моем коде C ++. Я использую программное обеспечение TCLAP для приема аргументов командной строки, и один из флагов - это имя файла:

TCLAP::ValueArg<string> Poly ("p", "poly",  "file name of the polynomial", false, "", "string");

У меня также есть другая функция, которая принимает 3 параметра,

void GetBiPoly(const char *filename, BiPoly<BigFloat> *u, BiPoly<BigFloat> *v);

Я передаю строку Poly функции GetBiPoly следующим образом:

benchmark::GetBiPoly(Poly.getValue().c_str(), &fxy, &gxy);

Когда я компилирую программу, выдается следующая ошибка:

miranda.cpp:(.text+0x1900): undefined reference to `benchmark::GetBiPoly(char const*, CORE::BiPoly<CORE::BigFloat>*, CORE::BiPoly<CORE::BigFloat>*)'

Кажется, что единственное отличие состоит в том, что тип имени файла в информации об ошибке char const*, а определение - const char*. Кто-нибудь может сказать мне, в чем проблема, кажется? Спасибо.

1 Ответ

1 голос
/ 06 августа 2011

char const * и const char * - это одно и то же. Ваша проблема не связана с этой частью сообщения. Ваша ошибка в том, что вы вызываете функцию benchmark::GetBiPoly(), но компоновщик не может найти ее в объектах, которые вы связываете. Где эта функция определена? Вы связываете это? Это в этом пространстве имен?

...