skipping incompatible 问题解决

来源:互联网 发布:ubuntu 修复win7引导 编辑:程序博客网 时间:2024/06/10 08:00

 

原谅链接:http://blog.163.com/danshiming@126/blog/static/10941274820146314419465/

 

问题出现背景及现象描述:

 最近在编写一个Linux + arm环境下的应用程序在调用一个外部操作xml的共享库时,出现如下错误:

 

 /opt/toolchains/arm920t-eabi/lib/gcc/arm-angstrom-linux-gnueabi/4.1.2/../../../../arm-angstrom-linux-gnueabi/bin/ld: skipping incompatible ../../../../OldProj/cs/mptmsu/lib/libtinyxml.so when searching for -ltinyxml
/opt/toolchains/arm920t-eabi/lib/gcc/arm-angstrom-linux-gnueabi/4.1.2/../../../../arm-angstrom-linux-gnueabi/bin/ld: cannot find -ltinyxml

即产生了不兼容性且找不到libtinyxml.so共享库,可是libtinyxml.so在指定的路径下明明是存在的呢

错误原因排查:

        经过排查发现,我连接的外部操作xml的共享库是在非arm环境下编译产生的,而主程序却是在arm环境的,因此产生了不兼容性。

错误解决方法:

找到外部操作xml的共享库libtinyxml.so的makefile文件,将以下几行

CC     := gcc
CXX    := g++
LD     := g++

 

改为:

CC    := arm-linux-gcc

CXX  := arm-linux-g++

LD    := arm-linux-g++

重新make生成新的libtinyxml.so后问题得到解决

所以在编程时,必须保证主程序和各个模块之间编译环境的一致,否则会出现意想不到的结果。

 

 

0 0
原创粉丝点击