openbabel ライブラリを使用していくつかのプログラムを作成しようとしています。そのうちの 1 つは、sdf ファイルからデータを抽出する単純なプログラムです。しかし、私が持っている FormatFromExt 関数の 1 つが機能していません。関数呼び出しは、渡した入力パラメーターに関係なく NULL を返します。
OpenBabel::OBFormat *inputFormat = conv.FormatFromExt(argv[1]);
// This method fails, returns NULL ^^
if (!inputFormat || !conv.SetInFormat(inputFormat)) {
char buf[256];
sprintf(buf, "Could not find input format for file: %s", inputFormat);
cerr << buf << endl;
exit(0);
}
このクラスの他のメソッドである OBConversion も 、 、 などの NULL をSetInfFormat
返しFindFormat
ますRead
。
argv[1] が実際に入力ファイルのパスを保持していること、およびファイルに openbabel ライブラリの有効な拡張子があることを確認しました。また、必要なすべてのヘッダー ファイルをインクルードしています。あるマシンでは、このコードは完全に機能します。一方、メソッドは失敗します。プログラムは両方で完全にコンパイルされます。このようなことが起こる原因は何ですか?
私が使用している openbabel ライブラリは、共有オブジェクト ファイルです。