将const char *传递给一个方法,但却得到了char const *错误

时间:2011-08-05 21:48:15

标签: c++ char const

我在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 个答案:

答案 0 :(得分:1)

char const *const char *完全相同。您的问题与邮件的该部分无关。您的错误是您正在调用函数benchmark::GetBiPoly(),但链接器无法在您链接的对象中找到它。该功能定义在哪里?你在链接吗?它在那个命名空间中吗?