當前位置:首頁 » 編程軟體 » libxml2編譯

libxml2編譯

發布時間: 2025-02-11 09:48:45

㈠ 怎樣編譯和配置GStreamer

GStreamer無疑是一個美觀的設計,但初學者往往覺得結構復雜,難以掌握。編譯起來也很麻煩:) 本文列出了編譯和配置GStreamer的主要步驟,給需要的人提供一個參考。 像其它的linux開源項目一樣,GStreamer也是採用包括autoconf,automake在內的GNU build system來編譯的。而且,GStreamer在編譯和安裝時還要依賴於其它的庫,這些庫至少包括:pkg-configGLiblibxml2 liboil 這些庫都使用pkg-config來提供include路徑和library路徑等編譯信息,而不是像很多開源項目一樣在執行configure腳本的時候用CPPFLAGS/CFLAGS環境變數來指定。 這些庫很容易通過google找到,一般以「*.tar.gz」或「*.tar.bz2」壓縮文件的形式存在。使用tar命令解壓:tar xzf *.tar.gz或tar xjf *.tar.bz2 解壓後一般會生成一個源文件目錄,先面的命令都要進入到各個庫的源文件目錄內執行。 具體編譯和安裝步驟如下: (1)確定各個庫的安裝路徑。為描述方便,假設如下的安裝路徑:pkg-config: /usr/local/install-pkg-config/Glib: /usr/local/install-glib/libxml2: /usr/local/install-libxml2/liboil: /usr/local/install-liboil/GStreamer Core: /usr/local/install-gstcore/GStreamer Base Plugins: /usr/local/install-plugins-base/ (2)設置環境變數。下面的命令按bshell/bash的語法,cshell中應該用setenv。 export PATH=/usr/local/install-pkg-config/bin:$PATH export PKG_CONFIG_PATH="/usr/local/install-glib/lib/pkgconfig:/usr/local/install-libxml2/lib/pkgconfig:/usr/local/install-liboil/lib/pkgconfig:/usr/local/install-gstcore/lib/pkgconfig:/usr/local/install-plugins-base/lib/pkgconfig" 第一個命令是將pkg-config這個工具加入到PATH變數中,這樣在執行configure腳本時就能夠調到剛剛安裝好的pkg-config。 第二個命令是設置pkg-config的搜索路徑,在執行configure腳本時會調用pkg-config得到所依賴的頭文件和庫。 (3)編譯和安裝pkg-config。 ./configure --prefix=/usr/local/install-pkg-configmakemake install 執行configure腳本時用--prefix指定安裝路徑 (4)編譯和安裝GLib。 ./configure --prefix=/usr/local/install-glibmakerm -rf /usr/local/install-glib/include/glib.h /usr/local/install-glib/include/gmole.h make install (5)編譯和安裝libxml2。 ./configure --prefix=/usr/local/install-libxml2makemake install (6)編譯和安裝liboil。 ./configure --prefix/usr/local/install-liboilmakemake install (7)編譯和安裝GStreamer Core。 ./configure --prefix=/usr/local/install-gstcoremakemake check (optional) make install (8)編譯和安裝GStreamer Base Plugins。 ./configure --prefix=/usr/local/install-plugins-basemakemake check (optional) make install (9)編譯和安裝GStreamer的其它plugins,包括gst-plugins-good,gst-plugins-bad等。可選。與編譯安裝gst-plugins-base類似。 (10)設置運行環境。要運行GStreamer,需要設置GST_PLUGIN_PATH環境變數,指明GStreamer Core和Plugins的庫路徑。 export GST_PLUGIN_PATH="=/usr/local/gst/install-gstcore/lib:=/usr/local/install-plugins-base/lib" 如果還安裝了其它plugins,也要加到GST_PLUGIN_PATH路徑里。 另外,如果已有的tool chain版本不夠,還需要更新tool chain。常需要做的是安裝新版本的autoconf和automake。

㈡ ubuntu編譯libxml2出現不是nanohttp.c的異常求指點

`ubuntu` 編譯 `libxml2` 時遇到錯誤,指示不是 `nanohttp.c` 的異常,尋求指導。

在嘗試編譯 `libxml2` 時,發現按照他人建議修改 `nanohttp.c` 中的 `open` 代碼後,執行 `make all-recursively`,但結果未見預期。查看錯誤輸出,發現多個 `make` 命令的運行均以 「沒什麼可以做的為 `all`」 結束,表明編譯過程並未實際進行到關鍵步驟,且此問題與 `nanohttp.c` 的修改似乎無關。

分析輸出,可以推斷問題可能不在於 `nanohttp.c` 的修改,而是編譯過程中遇到的其他問題。解決步驟如下:

1. **檢查編譯環境**:確認編譯環境(`Ubuntu`、`gcc` 版本)與 `libxml2` 源碼是否兼容,確保所有必要的編譯器、庫和工具已正確安裝。

2. **清理並重新配置**:嘗試清理源碼目錄,使用 `./configure --help` 查看配置選項,確保所有默認設置正確無誤。可能需要指定正確的編譯選項,如 `--disable-debug` 或 `--with-openssl` 等。

3. **詳細錯誤日誌**:在編譯過程中,增加錯誤日誌級別,以便更詳細地了解編譯失敗的具體原因。通常在 `configure` 或 `make` 命令中添加 `-v` 參數來獲取詳細輸出。

4. **檢查依賴庫**:確認所有依賴庫(如 `openssl`、`zlib` 等)正確安裝且版本適配。嘗試直接編譯依賴庫,確保它們能正常構建。

5. **嘗試使用預編譯版本**:如果直接編譯出現問題,可以考慮使用已編譯的預構建庫版本,這有時能避免因配置或依賴問題導致的編譯失敗。

6. **查閱官方文檔**:查閱 `libxml2` 的官方文檔或社區論壇,尋找類似問題的解決方案,或詢問是否有更新的指導文檔或最佳實踐。

7. **尋求社區幫助**:如果問題仍未解決,可以嘗試在開源社區(如GitHub、Stack Overflow)中提問,提供詳細的問題描述和當前的編譯日誌,以便獲得更具體的幫助。

通過上述步驟,通常可以定位並解決在編譯 `libxml2` 過程中遇到的問題。

㈢ linux 怎樣搭建qtwebkit使用的gstreamer

1. 編譯libxml2

下載libxml2-sources-2.7.6.tar.gz

解包後在當前目錄下編寫如下編譯腳本:(當然,不用腳本也行,你可以直接執行)】

CC=arm-none-linux-gnueabi-gcc./configure--build=i686-linux--host=arm-none-linux--prefix=/home/work/dist--without-python
make&&makeinstall

2. 編譯zlib, 這個太common,我不啰嗦了, glib-2.0要依賴的。

3. 編譯glib-2.0

下載glib-2.24.2.tar.bz2, 解包, 這個版本的依賴庫很少, 竟然只需要zlib。

老版本需要的libconv, gettext等均不需要了。

同樣, 編寫編譯腳本:

CC=arm-none-linux-gnueabi-gcc./configure--build=i686-linux--host=arm-none-linux
--prefix=/home/work/dist
CFLAGS="-I/home/work/dist/include-L/home/work/dist/lib"
glib_cv_stack_grows=noglib_cv_uscore=noac_cv_func_posix_getpwuid_r=yes
ac_cv_func_posix_getgrgid_r=yesac_cv_lib_rt_clock_gettime=noglib_cv_monotonic_clock=yes
make&&makeinstall

4. 編譯gstreamer

下載gstreamer-0.10.35.tar.gz, 這個是0.10版本裡面最新的了。

編譯腳本:

CC=arm-none-linux-gnueabi-gccPKG_CONFIG_PATH=/home/work/dist/lib/pkgconfig./configure--build=i686-linux--host=arm-none-linux
--prefix=/home/work/distCFLAGS=-I/home/work/dist/include--disable-registry--disable-loadsave--disable-gtk-doc
ac_cv_func_register_printf_function=no--disable-tests--disable-valgrind--disable-debug--disable-gst-debug

make&&makeinstall

5. 編譯gst plugins base

下載gst-plugins-base-0.10.35.tar.gz。

編譯腳本:

CC=arm-none-linux-gnueabi-gccPKG_CONFIG_PATH=/home/work/dist/lib/pkgconfig./configure--build=i686-linux--host=arm-none-linux
--prefix=/home/work/distCFLAGS=-I/home/work/dist/include--disable-valgrind--disable-x--disable-gnome_vfs--disable-alsa--disable-ogg--disable-pango--disable-theora--disable-vorbis--disable-examples

make&&makeinstall


接下來開始編譯Qt

Qt的配置文件很復雜, 我就不寫出來了, 就是要注意這三點:

1. 在Qt 的configure 時加上-force-pkg-config, 否則會在WebCore的feature.pri中檢查時報"Disabling video e the lack of GLib/Gio/GStreamer.",

也就是說會不支持video.

具體可以看這個pri片段:

!contains(QT_CONFIG,no-pkg-config):system(pkg-config--existsglib-2.0gio-2.0gstreamer-0.10):{
DEFINES-=ENABLE_VIDEO=0
DEFINES+=ENABLE_VIDEO=1
DEFINES+=WTF_USE_GSTREAMER=1
DEFINES-=WTF_USE_GSTREAMER=0
}else{
message("DisablingvideoethelackofGLib/Gio/GStreamer.")
DEFINES-=ENABLE_VIDEO=1
DEFINES+=ENABLE_VIDEO=0
}


如果不指定-force-pkg-config, 就會被當作no-pkg-config.

2. 為configure指定:PKG_CONFIG_PATH=/home/work/dist/lib/pkgconfig, 否則也會diabling video

3. 為了讓webkit庫能找到gstreamer等庫, 還需要在webkit.pro中加上

㈣ cocos2d-x 3.8 編譯 android 問題,版主能幫忙解決下嗎

一 無法替換cocos2d-x本身自帶的libxml2
為什麼需要自己編譯libxml2:
由於我以前解析xml使用的是Tree的方式,在Win32以及GMO上能夠正常運行,但是在ndk下編譯的時候遇到問題了,原來cocos2d-x使用的libxml2把Tree的解析方式關閉了。於是乎擺在我面前的是兩條路,第一條是重新編譯一版libxml2,打開Tree的解析方式;第二條是修改以前的代碼,採用SAX的解析方式。由於修改代碼的工作量比較大,所以決定先採用第一個方案。(PS:推薦大家在以後的程序中解析xml使用SAX的方式,省很多內存)
編譯時遇到的問題:
先將libxml2源代碼(從Android 2.2的源代碼中拷貝出來的,稍作修改)拷貝到cocos2d-x根目錄,然後修改yourgame/android/廳猜閉jni/Android.mk, 修改如下
subdirs := $(addprefix $(LOCAL_PATH)/../../../,$(addsuffix /Android.mk, \
libxml2 \ # this is the new add content
cocos2dx \
CocosDenshion/android \
))
subdirs := $(addprefix $(LOCAL_PATH)/../../../,$(addsuffix /Android.mk, \
libxml2 \
cocos2dx \
CocosDenshion/android \ ))
然後將cocos2dx\platform\third_party\android\libraries\libxml2.a刪除,再修改yourgame和cocos2d-x使用的新的libxml2的頭文件目錄,最後編譯。然後果斷的悲劇了,libxml2的代碼不會被編譯,然後在鏈接cocos2d-x so的時候會提示link error (libxml2的介面找不到實現)。
解決辦法:
修改cocos2d-x的Makefile文件,修改如下:
LOCAL_LDLIBS := -L$(call host-path, $(LOCAL_PATH)/platform/third_party/android/libraries) \
-lGLESv1_CM -llog -lz \
-lpng \
-ljpeg \
# -lxml2 #delete the old style of link libxml2
LOCAL_STATIC_LIBRARIES := libxml2 # add to enable auto build of libxml2
yourgame 的makefile 的修改參考cocos2d-x。 哈哈,終於能正常編譯了。
二 編譯命令始終是compile++ thumb 或者 compilethumb
為什麼不要使用thumb:
thumb指令集是為了滿足一些低端的設備而加上的,使用的是16位的指令集,能壓縮扮裂代碼密度,但是指令比普通的32位arm指令弱很多,所以建議關閉掉。
解決辦法:
在每個Android.mk 中每個Mole加上LOCAL_ARM_MODE := arm ,這樣就能看到compile++ arm 和compile arm 了。
三 無法載入資源
問題描述:
在Android 程序編譯完打包之後,安裝上設備,提示"Get data from file **** failed", 但是發現文件路徑是對的,只是中間有"."或者".."。
問題產生的原因:
在請教高人之後知道android程序中使用的資源是打包在壓縮文件裡面的,程序中只能通兆團過在壓縮包的全路徑名去獲取文件,並且不能有相對路徑(如"." , "..")。而且,不能通過fopen去打開,因為文件目錄根本就沒有這個文件。
解決辦法:
1. 將plist文件和png,動畫配置xml和png放在相同的目錄,plist和xml中包含的文件名和plist以及xml在相同的目錄下。
2. 在解析xml的時候不能使用xmlReadFile,而使用如下方式:
const char* xmlConfFullPath = CCFileUtils::fullPathFromRelativePath(yourfilename);
CCFileData data(xmlConfFullPath, "rt");
unsigned long size = data.getSize();
char *pBuffer = (char*) data.getBuffer();
doc = xmlReadMemory(pBuffer, size, NULL, "UTF-8", XML_PARSE_RECOVER);
四 dynamic_cast不能使用
問題描述:
dynamic_cast返回NULL,但是在Win32上是能正常工作的。
原因:
不詳,反正搞不定,試過以下各種辦法,均以失敗告終:
1. 修改Application.mk,添加如下:
APP_STL := gnustl_static
APP_CPPFLAGS += -frtti
2. 修改編譯器,使用gcc編譯C+代碼,且在鏈接時將-lsupc+ 換成-lstdc++
最後只能放大招:
將dynamic_cast 改為static_cast, 哎,先將就著用吧。

㈤ 編譯可以通過,但是下載到開發板之後運行,提示找不到第三方庫文件(libxml2.so.2),求解,急急急!!!

去找到編譯器下面的這個庫然後放到開發板的lib目錄下面

熱點內容
源碼網嘉 發布:2025-02-11 16:07:06 瀏覽:191
免費ftp服務軟體 發布:2025-02-11 15:58:06 瀏覽:865
大櫻桃建園為什麼要配置授粉樹 發布:2025-02-11 15:58:00 瀏覽:628
五菱宏光s頂配有哪些配置 發布:2025-02-11 15:50:57 瀏覽:286
華為8加128配置有哪些 發布:2025-02-11 15:48:20 瀏覽:579
壓縮機三轉子 發布:2025-02-11 15:45:54 瀏覽:827
linux操作系統shell 發布:2025-02-11 15:45:53 瀏覽:338
安卓模擬器如何選擇安裝 發布:2025-02-11 15:34:26 瀏覽:176
安卓手機和華為哪個好用 發布:2025-02-11 15:32:11 瀏覽:555
大眾車載dv設置密碼多少 發布:2025-02-11 15:26:06 瀏覽:413