首页 > 编程语言 >龙芯派二代2k1000la开发——交叉编译环境搭建(C/C++和Qtcreator)

龙芯派二代2k1000la开发——交叉编译环境搭建(C/C++和Qtcreator)

时间:2023-04-19 14:58:28浏览次数:54  
标签:loongarch64 龙芯 2k1000la E5% E6% C++ 3.3 linux poky

龙芯派二代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 交叉开发环境搭建

  1. 选择菜单栏的工具-选项

  1. 设置qmake,如图Kits->QT versions 里添加qmke路径

/opt/poky/3.3+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/qmake

  1. 设置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++

  1. 设置Kits,如图Kits->Kits 里添加sysroot路径及上面设置的QMAKE、
    gcc、g++,sysroot路径:

/opt/poky/3.3+snapshot/sysroots/x86_64-pokysdk-linux

  1. 设置完成后保存,编译工程时选择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

相关文章

  • C++小型公司工资管理系统[2023-04-19]
    C++小型公司工资管理系统[2023-04-19]小型公司工资管理系统要求:1.公司主有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。2.工资的计算方法:a、经理:固定月薪为8000;b、技术员:工作时间*小时工资(100元每小时);c、销售员:销......
  • c&c++ 的window环境获取exe文件所在的目录
    #include <iostream>#include<stdio.h>#include <direct.h>#include <windows.h>#include<process.h>#include <atlstr.h>charbuff[MAX_PATH];//用于存放获取的路径信息。GetModuleFileName(NULL,buff,MAX_PATH);CStringstr2=buff;int......
  • c++打卡第九天
    一、问题描述。   有一辆撞人逃逸的车辆,有三人目击他的车牌号,其中一人说它的前两数是相同的,零一人说它的后两位是相同的,第三个人说,这四位数是一个整数的平方,如何求解这个车牌号。二、设计思路。    ①、对于此类求解问题,需要采用穷举法,对这个车牌号进行开方是否......
  • C++恶意软件开发(四)通过查找进程名进行DLL注入
    通过进程名查找PID当我们编写注入器的时候,肯定是希望直接通过进程名进行注入,而不是像上一篇笔记一样通过手动输入PID进行查找。通过进程名查找PID的步骤如下:(1)创建系统中所有进程的快照(2)保存系统快照中遇到的第一个进程的信息(3)循环检索系统中进程的信息是否匹配需要查......
  • C++ const关键字
    参考资料:【C++const的各种用法详解】【const用法深入浅出】-COS-博客园(cnblogs.com)const的基本概念:const名叫常量限定符,用来限定特定变量,以通知编译器该变量是不可修改的。习惯性的使用const,可以避免在函数中对某些不应修改的变量造成可能的改动。下面我就const的用法......
  • 打卡 无规矩不成方圆 - C/C++ 多态
    请结合如图所示的继承关系设计Shape、Circle以及Rectangle类,使得下述代码可以正确计算并输出矩形和圆的面积。提示:Shape的析构以及area()函数都应为虚函数。  裁判测试程序样例://Project-Shapes#include<iostream>usingnamespacestd;//在此处定义Shape,Cirlce及......
  • c++_Template
    c++_Templatestd::stringMemberfunctions:Iterators:beginReturniteratortobeginning(publicmemberfunction)endReturniteratortoend(publicmemberfunction)rbeginReturnreverseiteratortoreversebeginning(publicmemberfunction)rend......
  • C++ 学习 第七天
    今日内容:指针 函数 指针:指针是用于记录一块内存空间地址的符号& 后面跟的是一个变量的时候,代表的是取址符符号*  乘号:需要左右两侧的操作数  指针符:当*的前方跟的是一个数据类型的 时候  解引用符:当*后方跟的是指针的时候 int number=20 int* ptr=......
  • 4.18 c++图形库easyx的基础编程
    头文件#include<graphcis.h>一基础绘图概念1.颜色用三原色表示RGB(红色部分,绿色部分,蓝色部分)每一部分的数值范围(0~255)。基本大写英文单词已对应例如BLUE蓝色2.窗口坐标的默认原点在左上角(0,0)x轴正方向向右,y轴正方向向下。二窗口函数initgraph(intwidth,intheigh......
  • C++入门
       本篇文章与大家分享一些c++的关键字、命名空间及输入输出的相关知识。首先,我们先了解一下c++的关键词,具体如下:C++的关键词c++的关键词,共计64个,部分与c语言相似,这些关键字需不需要背呢?答案是否定。回顾我们学c语言的过程,关键词用着用就记住了,没必要刻意去记忆。对于c++的......