我在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*
。谁能告诉我它似乎是什么问题?感谢。
答案 0 :(得分:1)
char const *
和const char *
完全相同。您的问题与邮件的该部分无关。您的错误是您正在调用函数benchmark::GetBiPoly()
,但链接器无法在您链接的对象中找到它。该功能定义在哪里?你在链接吗?它在那个命名空间中吗?