0

我正在尝试构建一个程序,但出现错误:

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++。

4

1 回答 1

2

第 103 行application_ob.cpp可能是这样的:

FormatFromExt(qs);

直接的解决方案是将其(或其等效项)更改为

FormatFromExt(qs.toStdString());

但是,我们没有足够的信息qs来判断上述方法在处理非拉丁字符时是否有效。此答案中提供了更好的替代方案,但要在它们之间进行选择,我们必须知道我们正在处理什么样的数据。

于 2011-07-15T09:10:10.893 回答