首页 > 代码库 > qt5.3.2移植到arm上出undefined reference to '__sync_sub_and_fetch_4的错

qt5.3.2移植到arm上出undefined reference to '__sync_sub_and_fetch_4的错

qt5.3.2移植到arm上出undefined reference to ‘__sync_sub_and_fetch_4的错。解决办法如下,

使用工具:GCC4.4.1

QT源码:qt5.3.2

前提是确保你的工具已经安装成功了。

解决:
1.下载gcc源码:我用的4.4.1解压,在gcc-4.4.3/gcc/config/arm/目录下找到一个linux-atomic.c;
2.制作链接库:使用libtool制作,输入命令
 libtool --tag=CC --mode=compile arm-linux-gcc -g -O2 -MT linux-atomic.lo -MD -MP -MF linux-atomic.Tpo -c -o linux-atomic.lo linux-atomic.c
然后:
 libtool --tag=CC --mode=link arm-linux-g++ -g -O2 -o liblinux-atomic.la linux-atomic.lo
这一步会在当前目录生成.libs目录;
3.将生成的库拷贝到一个比较短的目录,比如/opt:
cp .libs/liblinux-atomic.a /opt/arm
4.修改Qt的Makefile:
进入Qt源码目录:
cd qt-everywhere-opensource-src-5.*
修改:./qtscript/src/script/Makefile

在LIBS  = 的结尾添加 -L/opt/arm -llinux-atomic
然后编译,该问题就不会出现了。

 

 

 

参考 http://blog.csdn.net/wavemcu/article/details/43898117

qt5.3.2移植到arm上出undefined reference to '__sync_sub_and_fetch_4的错