当前位置:首页 » 编程软件 » 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