我正在尝试构建一个程序,但收到错误:
application_ob.cpp: In member function 'void ApplicationWindow::OBNewLoad(QString, QString)':
application_ob.cpp:103:41: error: call of overloaded 'FormatFromExt(QString&)' is ambiguous
application_ob.cpp:103:41: note: candidates are:
/usr/include/openbabel-2.0/openbabel/obconversion.h:81:24: note: static OpenBabel::OBFormat* OpenBabel::OBConversion::FormatFromExt(const char*)
/usr/include/openbabel-2.0/openbabel/obconversion.h:84:24: note: static OpenBabel::OBFormat* OpenBabel::OBConversion::FormatFromExt(std::string)
我如何修补它以便正常构建?请以简单的方式解释,因为我不懂C ++。
答案 0 :(得分:2)
application_ob.cpp
的第103行可能会读取如下内容:
FormatFromExt(qs);
立即解决方案是将此(或其等价物)更改为
FormatFromExt(qs.toStdString());
但是,我们没有足够的信息来说明qs
的可能内容,以告诉上述方法在处理非拉丁字符时是否有效。更好的选择是
在this answer中提出,但要在它们之间做出选择,我们必须知道我们正在处理哪种数据。