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
然后编译,该问题就不会出现了。