2012-05-03 20 views
0

昨日私は、関数 doc = xmlParseFile(fname);を使用して、Cで書かれたプログラムでXMLファイルを解析できました。XML解析ファイルでNULLが返される

ここでNULLを返します(次の行にキャッチされ、エラーを返します)。プログラムは1か月以上変更されていません。先週からXMLファイルが変更されておらず、libxml2は25.3.2012以降変更されていません。 xmllintは問題なくファイルを実行し、別のコンピュータ(Solarisでは、同じソースコードを使用しますが、別のコンパイラとライブラリを使用して)で解析できます。それでは私は何を確認すべきですか? http://ubuntuforums.org/showthread.php?t=1402824(まだ試してみません)

Cプログラムは実際にはMatLabから呼び出されたmex関数ですが、違いはありません、 右?私はこれをGNU/Linux上で実行しています。

+0

使用するxmlライブラリをより明確にする必要があります。 –

+0

これはクラスタ上にあるため、管理者権限はありませんが、名前は/usr/lib64/libxml2.so.2.7.6(またはlibxml2.aまたはlibxml2.la)です。それは64ビットマシンなので、lib64です。それはあなたの質問に答えますか? – craq

+0

あなたは適切な64ビットライブラリに対してコンパイルしてリンクしていますか? (libc、libmなど) –

答えて

0

はこの試してみてください。

FILE *f = fopen("~/myxml.log", "a"); 
    xmlSetGenericErrorFunc(f, NULL); 
    doc = xmlParseFile(fname); 
    fclose(f); 

を、ログ・ファイルに結果を見て。

+0

良いアイデアですが、ファイルを開くことができませんでした。 (fopen呼び出しの後にf == NULLになります)。権限は、オペレーティングシステムによって異なる666 – craq

+0

でした。ウィンドウの下には「c:\ myxml.log」があります。 UNIXでは "〜"があなたの "$ HOME"に展開されます。おそらくそれは設定されていません。あなたは "/home/craq/myxml.log"を試してみることもできますし、あなたが住んでいるところもあります。 –

関連する問題