返回信息流现在有一个C程序,要加上libxml的库,就是加一个
#include <libxml/parser.h>
#include <libxml/tree.h>
一个linux系统的开发板,本身自带有libxml这个库的,就是说在/usr/include/libxml2 和/lib底下有libxml的头文件和库文件等
所以我们在编译的时候 Makefile写
$(CC) file.c -I /usr/include/libxml2 -L /usr/lib/ -lxml2 -o ./file
就能成功的加上LIBXML这个库,编译成功,然后成功运行
现在我的问题是---------------------------------------
我们需要把这个程序移植到ARM的平台下,但是那个ARM的开发板没有libxml,而且没法安装在根目录下。
因为它的文件系统是read only的。不能往他的根文件系统中加入新的文件
现在这个程序只是拷在SD卡里,然后挂载到开发板上去的.
现在我通过arm-linux-gcc交叉编译,生成了arm平台下的这几个文件
libxml2.a libxml2.so libxml2.so.2.7.7
libxml2.la libxml2.so.2
http://blog.chinaunix.net/uid-20620288-id-3153640.html这篇文章是在开发板根目录可以读写的情况下,说只要把这几个文件拷进开发板中,就可以了。
但是现在不能往根目录里拷,怎么办啊?拷进SD卡里 然后在Makefile中
$(CC) file.c -I ./libxml2 -L ./lib/ -lxml2 -o ./file
的话,编译可以通过,不过运行的时候就会说
error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory
怎么办啊???。。。。。不知道我形容清楚了没。。。。
解决完整流程——————————————————————————————————————————
———————————————————————————————————————————————
1、下载libxml2.7.7.tar.gz
2、解压 tar -zxvf libxml2.7.7.tar.gz
3、进入解压的文件夹
4、 ./configure --prefix=/usr/local/libxml-arm --host=arm-linux --CC=arm-linux-gcc
make
make install
5、进入/usr/local/libxml-arm
将文件夹下include/libxml2 文件夹拷出来
将/lib 文件夹下 libxml2.a libxml2.so libxml2.so.2.7.7 libxml2.la libxml2.so.2
这5个文件拷出来
全部放在一个/lib的文件夹下
6、将这个libxml2 lib两个文件夹复制到要使用libxml的C程序文件夹下
7、修改Makefile文件
$(CC) XXX.c $(LIBCMDAPI) -I libxml2/ -L lib/ -lxml2 -o ./XXX
-I 是include的意思
-L 是lib
8、make这个C程序
9、将整个C程序的文件夹拷到开发板中,包括刚才的lib 和libxml文件夹
10、export LD_LIBRARY_PATH=/tmp/mnt/lib 这个文件夹路径是你在开发板上,刚才拷进来的那个lib文件夹的绝对路径
11、运行程序
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #14122同步于 2013/10/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
[问题`已解决附流程]C程序,编译,添加新的库文件
arence
2013/10/30镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
/........
本来是想求助的。。后来解决了。。。
所以就结个贴呗。。
囧。。
【 在 FromSixToTen 的大作中提到: 】
:
: LZ是刷存在感吗?
【 在 arence 的大作中提到: 】
: /........
: 本来是想求助的。。后来解决了。。。
: 所以就结个贴呗。。
: ...................
解决了写上解决方案好不好,最讨厌那些,提出问题,然后说解决了,不说解决方案,后人遇到同样问题,然后好不容易找到这个帖子然后就没有啦
原帖已编辑,附解决方法~谢谢~
【 在 sample 的大作中提到: 】
: 直接把程序在linux下arm-linux-gcc交叉编译了 放到ARM板下?
是这样的,这个帖子我在linux版也发过,就在linux版附了解决方法了,忘了这个版了。
现在已编辑,非常抱歉~。
可是同学你说话为什么那么不客气呢?? 一会儿说我“刷存在感”一会儿说“最讨厌”、、、、
。。。。让人听了很不舒服。。
谢谢~
【 在 FromSixToTen 的大作中提到: 】
:
: 解决了写上解决方案好不好,最讨厌那些,提出问题,然后说解决了,不说解决方案,后人遇到同样问题,然后好不容易找到这个帖子然后就没有啦