龙芯派二代2k1000la开发——交叉编译环境搭建(C/C++和Qtcreator)
一、下载脚本文件
这个脚本文件可以在龙芯技术支持QQ群中找到
二、编译C/C++程序
在下载目录下执行该脚本
./poky-glibc-x86_64-my-qt5-image-loongarch64-ls3a5000-toolchain-3.3+snapshot.sh
Bash
设置环境变量
source /opt/poky/3.3+snapshot/environment-setup-loongarch64-poky-linux
Bash
之后即可使用/opt/poky/3.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/loongarch64-poky-linux/loongarch64-poky-linux-gcc编译c程序
/opt/poky/3.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/loongarch64-poky-linux/loongarch64-poky-linux-gcc -o hello hello.c
Bash
三、QT Creator 交叉开发环境搭建
- 选择菜单栏的工具-选项
- 设置qmake,如图Kits->QT versions 里添加qmke路径
/opt/poky/3.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/qmake
- 设置gcc和g++,如图Kits->编译器里添加gcc路径:
/opt/poky/3.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/loongarch64-pokylinux/loongarch64-poky-linux-gcc
g++路径 : /opt/poky/3.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/loongarch64-poky-linux/loongarch64-poky-linux-g++
- 设置Kits,如图Kits->Kits 里添加sysroot路径及上面设置的QMAKE、
gcc、g++,sysroot路径:
/opt/poky/3.3+snapshot/sysroots/x86_64-pokysdk-linux
- 设置完成后保存,编译工程时选择Loong即可
四、编译QT程序
source /opt/poky/3.3+snapshot/environment-setup-loongarch64-poky-linux
Bash
#进入需要编译的程序目录,命令行编译
qmake
make
Bash
注意在运行前需要先source一下,指定使用的编译器。
五、在龙芯派上运行可执行文件
第四步编译出来的整个文件夹传到龙芯派上,在龙芯派上执行可能会遇到如下报错:
明明有文件,但是运行的时候就说找不到。
原因是动态链接库的问题,在编译的文件里的动态库链接路径与开发板的系统不一样,可以在系统里用ln建立软链接
参考这篇文章:
https://cloud.tencent.com/developer/article/1720730#:~:text=%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3linux%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%E6%8F%90%E7%A4%BANo%20such%20file%20or%20directory%E7%9A%84%E8%83%8C%E5%90%8E%E5%8E%9F%E5%9B%A0%201%20%E6%96%87%E4%BB%B6%E6%9C%AC%E8%BA%AB%E4%B8%8D%E5%AD%98%E5%9C%A8%E6%88%96%E8%80%85%E6%96%87%E4%BB%B6%E6%8D%9F%E5%9D%8F,2%20%E6%97%A0%E6%89%A7%E8%A1%8C%E6%9D%83%E9%99%90%20%EF%BC%88chmod%20777%20xxx%EF%BC%89%203%20%E7%B3%BB%E7%BB%9F%E4%BD%8D%E6%95%B0%E4%B8%8E%E7%A8%8B%E5%BA%8F%E4%BD%8D%E6%95%B0%E4%B8%8D%E5%90%8C书签:深入理解linux执行文件提示No such file or directory的背后原因 - 腾讯云开发者社区-腾讯云
在上位机目录下执行
readelf -l test | grep interpreter
Bash
可以看到:
需要动态链接库/lib/ld.so.1
于是我将板子上/lib64下的ld.so.1移动到/lib文件夹下,成功在龙芯派上运行程序。
标签:loongarch64,龙芯,2k1000la,E5%,E6%,C++,3.3,linux,poky From: https://www.cnblogs.com/i-rong/p/17333256.html