2012-08-05 50 views
0

我安裝了libxml2,並且正在使用它來編譯讀取xml文檔的示例文件。我使用以下方法來標誌,所以我使用的libxml2:Libxml2不會在第一行解析有效的xml文件(seg fault)

gcc `xml2-config --cflags xml2-config --libs` libxml.c 

但是它崩潰權在解析文件的第一行:

Error: <unknown>:1: syntax error near line 1 
context: <?xml version="1.0" >>> encoding="UTF-8"?> <<< 
Segmentation fault 

我知道,這是一個有效的XML文件,第一對夫婦的XML文件的行看起來是這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1"> 
    <model metaid="_case00010" id="case00010" name="case00010" timeUnits="time"> 

沒有任何一個有過這樣的錯誤?謝謝。

這是我得到的運行gdb的時候,但我不知道這意味着什麼:

Cannot find new threads: generic error 

的代碼是逐字從這裏:http://www.xmlsoft.org/examples/parse1.c

和XML文件通過驗證檢查。

+1

爲什麼你認爲它是libxml2的崩潰?也許這是你的程序,它不能正確處理錯誤? – fork0 2012-08-05 15:49:36

+0

您是否檢查過XML文件是否確實以UTF-8編碼? – 2012-08-05 15:50:25

+0

@ fork0我的錯誤,它不是libxml2崩潰,我的意思是說它不解析有效的xml文件。 – mihajlv 2012-08-05 15:51:41

回答

0

出於某種原因,當文件名稱結尾時,它不會鏈接庫。我把聯動信息在年底和它wokred:

gcc 'xml2-config --cflags' libxml.c 'xml2-config --libs'

+0

我無法理解它是如何編譯的。問題中的命令無法正常工作:它錯過了'--cflags'和'--libs'命令之間的反引號字符以獲取標誌。所以你根本無法得到這些庫。它編譯的奇蹟可能會解釋你在命令的其他地方有libxml2的符號(一個錯誤,在IDE或構建系統中很容易產生臃腫)。 – fork0 2012-08-05 16:59:01