|
开发板中的应用程序找不到动态库>>>>>>>>>>>>>>>>>
[复制链接]
我的嵌入式环境为:arm9 linux-2.4.27 ramdisk
主机上的交叉编译器用的 cross-2.95.3
我写个简单的hello word程序,动态编译的
arm-linux-gcc -o hello hello.c
此时如果直接把 hello放在ramdisk中的/bin 下面,执行时会提示
./hello: file not found
然后我就把交叉编译器下面所有的动态库文件
放在ramdisk中的/lib下面,其实就这个简单测试程序而言
只用到2个常见库(4个文件,其中有2个是链接)
libc.so.6
libc-2.2.3.so
ld-linux.so.2
ld-2.2.3.so
文件足够了!
但运行时提示如下:
/ # hello
hello: error while loading shared libraries: cannot open shared object file: cannot load shared object file: No such file or directory
请问什么原因呢?开发板中一般也没有ldconfig之类的,并且在/etc
下面我也建立了ld.so.conf文件,把库的路径加入了!
从其它地方看到过下面几句话:
“如果想让你的程序顺利执行,那么编译器使用的库版本必须和板载Linux
的库相同”,我不太明白这里所谓的“板载Linux的库”是什么意思,因为
编译内核时不需要像glibc,uclibc这样的库吧,到底什么原因请指点
|
|