程序移植到银河麒麟4.0.2(arm64)问题记录

alsa/asoundlib.h No such file or directory

1.缺少asound库,进入ftp://ftp.alsa-project.org/pub/lib/选择下载,这里选择1.2.3版本
2.编译安装:

tar -jxvf alsa-lib-1.2.3.tar.bz2
cd alsa-lib-1.2.3
./configure  --build=aarch64-linux-gnu --host=aarch64-linux-gnu
make
make install

段错误

开启core文件
ulimit -c unlimited
运行编译后的可执行文件,提示段错误,别急,使用gdb进行调试。

gdb ./someexe core.* //进入gdb调试模式
(gdb)run  //运行程序
(gdb)quit //退出调试

找不到-l*

缺少第三方依赖库,apt-get install安装对应库,或者下载源码手动编译安装。

无法添加符号,文件格式错误

可能是因为源代码是在windows上面编写的,文件末尾的空行在linux下提示格式错误,解决方法:
定位到错误文件的末尾处

vim somecode.c +  

删除末尾空行,保存退出重新编译即可。

:wq

如果文件末尾不存在空行,可以使用vim对文件进行转换,然后重新编译。

vim somecode.c
:set ff=unix

Makefile更新

有些时候需要重新生成Makefile,例如源码是由其他平台拷贝过来。
1.qmake -project重新生成.pro文件
2.qmake -makefile重新生成Makefile
需要对Makefile做以下修改:
1.添加-fsigned-char(适配arm64)。
2.有时候-O2会导致程序运行时报错,酌情去掉。
3.根据实际情况添加rpath,例如:-w1,-rpath=./

strtok慎用

使用strtok时会破坏原字符串,使用时注意。

UI渲染问题

如果使用Qt开发UI,编译和运行时依赖的系统库需要一致,例如libQt5Gui.so.5等。

cd /
find / -name libQt5Gui.so.*

查找当前开发环境的依赖库,拷贝到运行时相关路径即可,否则可能出现运行时UI卡顿等问题。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×