成都设计网站的公司名称,品牌查询,莱州网络推广,360网站收录提交目录
1.工具以及概念介绍
#xff08;1#xff09;Clion软件简介 #xff08;2#xff09;交叉编译
#xff08;3#xff09;远程编译
2.操作原理
3.详细操作步骤
#xff08;1#xff09;配置Clion与虚拟机ubuntu的ssh连接
CLion远程开发Ubuntu#xff0c;并显…目录
1.工具以及概念介绍
1Clion软件简介 2交叉编译
3远程编译
2.操作原理
3.详细操作步骤
1配置Clion与虚拟机ubuntu的ssh连接
CLion远程开发Ubuntu并显示helloworld文字框
2宿主机环境搭建
3编译出现 File in wrong format问题
4开发板环境配置搭建
5挂载出现错误
出错原因
1.电脑与开发板之间以太网没有连接
2..电脑PC端的WiFi没有禁止电脑PC端的以太网没有设定为192.168......IPv4的形式
3.虚拟机与PC端的ip地址没有同步
4.虚拟机没有设置为桥接模式
5.虚拟机、宿主机、PC端以太网没有处于同一网段上。
192.168.12.1与192.168.12.2与192.168.12.200都是同一网段
6.在宿主机环境搭建的第四步 编辑 NFS导出配置文件/etc/exports , 添加希望共享的目录中GEC6818 的 IP地址仍然为 192 . 168 . 1 . 100要进行改变
问题解决
1.配置windows11 以太网默认ip为192.168.......
2.设定开发板、虚拟机ip地址与桥接模式
3.NFS权限不够
总结 使用Clion通过ssh在ubuntu上进行交叉编译还有远程编译对于一名嵌入式工程师来说是我们学习Linux不可多得的神兵利器。利用Clion强大的自动补齐我们可以节省非常多的查找函数的时间此外Clion还支持多项目打开的功能可以在一个文件夹下创建多个项目这无疑是非常哇塞的只有玩过Qt才知道这有多么强大~~。而且Clion还可以通过SSH进行连接还有Cmake进行交叉编译交叉编译的教程我以前发布过。 综上所述我们才要掌握这一能力学会使用Clion进行交叉和远程编译
1.工具以及概念介绍
1Clion软件简介 CLion 是 JetBrains 开发的一款跨平台集成开发环境IDE主要用于 C 和 C 编程。它在开发中提供了许多强大的功能以帮助程序员更加高效地编写和管理代码。他不仅能提供提供代码补全、快速导航和实时错误检测帮助开发者提高编程效率还能使用 CMake 作为项目构建系统可以轻松管理项目依赖支持多种构建配置。 特别是对Cmake的支持使Clion能进行多项目编译而且可以进行跨平台编译比如用Clion在ubuntu上进行QT的交叉编译就是CMake发挥了作用。 综上CLion 适用于个人项目、商业开发和大型团队合作特别适合需要进行 C/C 开发的开发者和工程师。如果你对嵌入式系统或系统软件开发感兴趣CLion 也是一个非常好的选择。 2交叉编译 交叉编译是一种编程技术它允许在一种平台上通常是性能更强的开发环境编译生成适用于另一种平台通常是硬件资源有限的目标设备的程序。简单来说就是在一个系统上为另一个系统创建可执行文件。 我们这里使用交叉编译是在ubuntu虚拟机上编译出可以在开发板上跑的程序它所使用的编译器是Qt他是跨平台的使用的工具是Clion中的CMake。 通过交叉编译开发者能够在开发环境中完成大部分工作而无需直接在目标设备上进行编译这样大大提高了开发效率。
3远程编译 远程编译是一种编程技术允许开发者在本地机器上编写和构建代码但实际的编译过程在远程服务器或其他计算机上进行。这种方法通常用于需要大量计算资源或特定环境的应用开发尤其在大型项目或跨平台开发中非常有用。 对于开发板来说远程编译可以有效的延长开发板的使用寿命可能不准~听老师说的由于对于部分Linux而言其性能有限不能直接运行编译器所以远程编译也就孕育而生而会不会远程编译对于嵌入式程序员而言也是核心竞争力的一种象征
2.操作原理 我们利用Clion搭建好于虚拟机的ssh连接在Clion的终端里登录虚拟机再将虚拟机当做宿主机我使用的虚拟机仅仅安装了必要的开发工具比如arm-linux-gcc通过交叉编译使用Clion自带的CMake配置arm开发板所要用的gcc完成在ubuntu虚拟机中arm-gcc项目的编译通过nfs共享宿主机上的共享文件夹远程运行程序即可在开发板上远程编译运行项目。 特别指出要能支持qt(arm版本的)。因此最重要的两件事:要启动nfs服务安装cmake(因为ubuntu上预装的linux版本的Ot creator共享版并不是使用的cmake工具而是使用的qmake,qt公司自己的)。
3.详细操作步骤
1配置Clion与虚拟机ubuntu的ssh连接
过程如下
CLion远程开发Ubuntu并显示helloworld文字框
2宿主机环境搭建
1.打开终端
2.使用文本编辑器 (如 nano 或vim) 打开 sources. list 文件。 这里以 nano 为例 : sudo nano /etc/apt/sources.list 3.在文件的末尾添加您提供的源。 您可以直接复制并粘贴以下内容: deb Index of /ubuntu/ trusty main restricted universe multiverse deb Index of /ubuntu/ trusty-updates main restricted universe multiverse deb Index of /ubuntu/ trusty-security main restricted universe multiverse 这里是使用了中科大的镜像源。 4.保存并退出编辑器。 在 nano 中 , 您可以按ctrl O 保存文件 , 然后按 ctrl X退出。
5.更新软件包列表以使更改生效: sudo apt-get update 要在 ubuntu 14. 04上为 GEC6818 嵌入式开发板本次使用的开发板建立 NFS (网络文件系统) 服务 , 可以按照以下步骤进行操作: 1 . 安装 NFS服务器首先需要安装 NFS 服务器软件包。 打开终端并运行以下命令: sudo apt-get update sudo apt-get install nfs-kernel-server 2. 创建共享目录选择一个目录作为 NFS共享目录。 例如 , 可以在, 目录下创建一个名为 /nfs 的目录: sudo mkdir /nfs 3. 设置目录权限根据需要设置共享目录的权限。 例如 , 可以将权限设置为所有用户可读写: sudo chmod 777 /nfs 4. 配置 NFS 导出 编辑 NFS导出配置文件/etc/exports , 添加希望共享的目录。 使用文本编辑器打开文件: sudo nano /etc/exports 在文件末尾添加以下行 (假设 GEC6818 的 IP地址为 192 . 168 . 1 . 100 , 请根据实际情况修 改) : /nfs 192.168.1.100(rw,sync,no_subtree_check) rw: 允许读写。
sync: 同步写入。
no subtree check: 不检查子目录。
注意: 保存并退出操作: 在 nano 中 , 按ctrl O保存文件 , 然后按 ctrl X退出。 5 .导出共享目录 运行以下命令以使更改生效: sudo exportfs -a 6 .启动 NFS 服务确保 NFS服务正在运行: sudo service nfs-kernel-server restart sudo service nfs-kernel-server status 7 . 配置防火墙 (如果适用) 如果您使用防火墙 , 请确保允许 NFS流量。 可以使用以下命令允许 NFS 端口 : sudo ufw allow from 192.168.1.100 to any port nfs 8 .在 GEC6818 开发板上挂载 NFS共享 mount -t nfs -o nolock 192.168.20.108:/nfs /mnt 通过以上步骤 , 能够成功启动 NFS 服务并共享目录 , 这是我们搭建远程运行环境的第一步。
接下来我们要安装cmake , 这个比较简单: sudo apt-get update sudo apt-get install cmake 这个两条命令能成功安装cmake2 . 12的版本
接下来我们要启动ssh服务 , 首先还是要安装openssH服务器
1 、安装 openssH 服务器如果尚未安装 openssH 服务器 , 您可以使用以下命令进行安装: sudo apt-get update sudo apt-get install openssh-server 2、 启动 SSH 服务安装完成后 , 您可以使用以下命令启动 SSH 服务: sudo service ssh start 3、 检查 SSH 服务状态您可以使用以下命令检查SSH 服务的状态: sudo service ssh status 4、配置防火墙 (如果适用) 如果您使用防火墙 , 请确保允许SSH 流量。可以使用以下命令允许SSH 端口 (默认是22) : sudo ufw allow ssh 5、 验证 SSH 连接 我之前第一步的操作完成以后ssh连接时已经连接好了的。 6、 确认Cmake与gcc还有Debuggen的配置 一定要是已连接宿主机中有且它与编译的文件的格式息息相关若gcc为minigui则只能在虚拟机上运行不能在开发板上运行如果是arm-gcc则只能在开发板上运行不能在虚拟机上运行它与运行环境中的库息息相关。 7、 在Clion中编译项目 特别注意 , 你的cmakeLists.txt应该参考下面的形式。
cmake_minimum_required(VERSION 2.8)
project(FIve)set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)set(CMAKE_PREFIX_PATH /opt/qtlib560_base) # 或者使用 /opt/qtlib560_base
# Qt
find_package(Qt5 COMPONENTSCoreGuiWidgetsREQUIRED)
#
include_directories(/opt/qtlib560_base/include)# 或者使用 /opt/qtlib560_base/include
link_directories(/opt/qtlib560_base/qtarm560/lib)# 或者使用 /opt/qtlib560_base/includeqt5_add_resources(QT_RESOURCES FiveChess/resources.qrc)
add_executable(FiveChessMain ${QT_RESOURCES} FiveChess/main.cppFiveChess/fivechesswidget.cpp FiveChess/fivechesswidget.h )
target_link_libraries(FiveChessMainQt5::CoreQt5::GuiQt5::Widgets
)
进入Clion与虚拟机中映射的文件夹将文件部署后进行ls即可看到Clion中的文件已经全部部署到虚拟机中的映射地址里。
在cmake ./与make之后正常不会出现error之后ls即可看到绿色可执行文件。
部署进入映射地址cmake ./与make都在第一步的连接里有所讲述这里不多赘述
3编译出现 File in wrong format问题
该英文的翻译是文件格式错误是由于所链接的库的格式与要编译的文件格式不匹配所导致的。 下面是错误原因
1、CMakeList.txt文件中没有按照我给的标准来有函数错误或路径错误。比如
link_directories(/opt/qtlib560_base/qtarm560/lib)代码出现错误
2、在Toolchains中C Compiler等gcc没有按照我给出的环境配置或配置错误。 下面是解决方法
1、检测CmakeList.txt寻找相应的库查看相应资料以防止连接的库与可执行文件不匹配。
2、检测gcc配置
3、更换项目文件地址比如将放在F盘的项目换到D盘在重复操作编译神奇的是我周围很多同学都是这样解决的
4开发板环境配置搭建
连接开发板串口 下面用SecureCRT软件通过serial串口与开发板连接
SecureCRT软件连接如下下载后直接打开
通过网盘分享的文件05_CRT 链接: https://pan.baidu.com/s/1Vt18AY5OSykrUPvDtxXA6A 提取码: ma56
特别注意使用SecureCRT时如果不上
1.检查串口线是否连接成功
2.将波特率调到9600连接成功后断开再将波特率调制115200后建立连接
步骤如下 执行程序以后即可看到程序在开发板上执行。 5挂载出现错误
出错原因
1.电脑与开发板之间以太网没有连接
2..电脑PC端的WiFi没有禁止电脑PC端的以太网没有设定为192.168......IPv4的形式
3.虚拟机与PC端的ip地址没有同步
4.虚拟机没有设置为桥接模式
5.虚拟机、宿主机、PC端以太网没有处于同一网段上。
192.168.12.1与192.168.12.2与192.168.12.200都是同一网段
6.在宿主机环境搭建的第四步 编辑 NFS导出配置文件/etc/exports , 添加希望共享的目录中GEC6818 的 IP地址仍然为 192 . 168 . 1 . 100要进行改变 问题解决
1.配置windows11 以太网默认ip为192.168.......
1搜索控制面板 2点击查看网络状态和任务 3右键以太网进入状态 4点击属性后双击下面蓝色选项 即可设定制定ip地址 2.设定开发板、虚拟机ip地址与桥接模式
1桥接模式在虚拟机设置中可以更改 2更改虚拟机IP地址
打开虚拟机终端敲入下列命令并执行 sudo ifconfig eth0 192.168.xxx.xxx 输入root密码开机密码即可更改IP地址
备注eth0是有线网络的意思
3更改开发板IP地址
在SecureCRT连接后敲入下列命令并执行 ifconfig eth0 192.168.xxx.xxx 注意他们的ip地址网段要一样 4验证虚拟机与开发板是否连接
在开发板ping 宿主机的IP地址
或在宿主机ping开发板的ip地址 指令如ping 192.168.54.152 3.NFS权限不够
重复宿主机配置中步骤4的操作再重行进行mount挂载 总结 嵌入式这一行如我老师所说重要的是胆大心细要编程习惯好单单将过程做一遍是没有用的更何况把答案给人抄都有可能抄不来上面的项目光光是配置我就配置了几天总是出现这样或那样的问题更何况这仅仅是配置。但难也有难的好处没有门槛我还不来呢嘿嘿。 希望我的文章可以帮助到大家也希望大家能越学越好 文章转载自: http://www.morning.gbfzy.cn.gov.cn.gbfzy.cn http://www.morning.iterlog.com.gov.cn.iterlog.com http://www.morning.wbrf.cn.gov.cn.wbrf.cn http://www.morning.rckdq.cn.gov.cn.rckdq.cn http://www.morning.ypzsk.cn.gov.cn.ypzsk.cn http://www.morning.qxmys.cn.gov.cn.qxmys.cn http://www.morning.lgznc.cn.gov.cn.lgznc.cn http://www.morning.rbknf.cn.gov.cn.rbknf.cn http://www.morning.nzsx.cn.gov.cn.nzsx.cn http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn http://www.morning.cbnlg.cn.gov.cn.cbnlg.cn http://www.morning.nrcbx.cn.gov.cn.nrcbx.cn http://www.morning.hflrz.cn.gov.cn.hflrz.cn http://www.morning.xnbd.cn.gov.cn.xnbd.cn http://www.morning.wphzr.cn.gov.cn.wphzr.cn http://www.morning.qqnjr.cn.gov.cn.qqnjr.cn http://www.morning.bdwqy.cn.gov.cn.bdwqy.cn http://www.morning.hxbjt.cn.gov.cn.hxbjt.cn http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn http://www.morning.mqldj.cn.gov.cn.mqldj.cn http://www.morning.xnkh.cn.gov.cn.xnkh.cn http://www.morning.hxpff.cn.gov.cn.hxpff.cn http://www.morning.wrlff.cn.gov.cn.wrlff.cn http://www.morning.cjcry.cn.gov.cn.cjcry.cn http://www.morning.hxljc.cn.gov.cn.hxljc.cn http://www.morning.knnc.cn.gov.cn.knnc.cn http://www.morning.kzxlc.cn.gov.cn.kzxlc.cn http://www.morning.fhrt.cn.gov.cn.fhrt.cn http://www.morning.gtmdq.cn.gov.cn.gtmdq.cn http://www.morning.kpwcx.cn.gov.cn.kpwcx.cn http://www.morning.dhbyj.cn.gov.cn.dhbyj.cn http://www.morning.hlfgm.cn.gov.cn.hlfgm.cn http://www.morning.sgwr.cn.gov.cn.sgwr.cn http://www.morning.nkkpp.cn.gov.cn.nkkpp.cn http://www.morning.kvzvoew.cn.gov.cn.kvzvoew.cn http://www.morning.rfmzc.cn.gov.cn.rfmzc.cn http://www.morning.nhpgm.cn.gov.cn.nhpgm.cn http://www.morning.jnbsx.cn.gov.cn.jnbsx.cn http://www.morning.zdydj.cn.gov.cn.zdydj.cn http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn http://www.morning.yrsg.cn.gov.cn.yrsg.cn http://www.morning.ssfq.cn.gov.cn.ssfq.cn http://www.morning.fqtdz.cn.gov.cn.fqtdz.cn http://www.morning.rjrlx.cn.gov.cn.rjrlx.cn http://www.morning.rhlhk.cn.gov.cn.rhlhk.cn http://www.morning.bbgn.cn.gov.cn.bbgn.cn http://www.morning.sblgt.cn.gov.cn.sblgt.cn http://www.morning.hyhqd.cn.gov.cn.hyhqd.cn http://www.morning.wmsgt.cn.gov.cn.wmsgt.cn http://www.morning.pqcbx.cn.gov.cn.pqcbx.cn http://www.morning.ljqd.cn.gov.cn.ljqd.cn http://www.morning.drkk.cn.gov.cn.drkk.cn http://www.morning.tngdn.cn.gov.cn.tngdn.cn http://www.morning.rlhjg.cn.gov.cn.rlhjg.cn http://www.morning.jhyfb.cn.gov.cn.jhyfb.cn http://www.morning.mttck.cn.gov.cn.mttck.cn http://www.morning.xqjrg.cn.gov.cn.xqjrg.cn http://www.morning.epeij.cn.gov.cn.epeij.cn http://www.morning.ydnxm.cn.gov.cn.ydnxm.cn http://www.morning.zpdjh.cn.gov.cn.zpdjh.cn http://www.morning.btnmj.cn.gov.cn.btnmj.cn http://www.morning.ybhjs.cn.gov.cn.ybhjs.cn http://www.morning.fjzlh.cn.gov.cn.fjzlh.cn http://www.morning.cxtbh.cn.gov.cn.cxtbh.cn http://www.morning.rmqlf.cn.gov.cn.rmqlf.cn http://www.morning.slkqd.cn.gov.cn.slkqd.cn http://www.morning.rrdch.cn.gov.cn.rrdch.cn http://www.morning.vuref.cn.gov.cn.vuref.cn http://www.morning.weitao0415.cn.gov.cn.weitao0415.cn http://www.morning.yngtl.cn.gov.cn.yngtl.cn http://www.morning.lmmh.cn.gov.cn.lmmh.cn http://www.morning.csnmd.cn.gov.cn.csnmd.cn http://www.morning.pzwfw.cn.gov.cn.pzwfw.cn http://www.morning.ljpqy.cn.gov.cn.ljpqy.cn http://www.morning.skkln.cn.gov.cn.skkln.cn http://www.morning.rwbh.cn.gov.cn.rwbh.cn http://www.morning.hmlpn.cn.gov.cn.hmlpn.cn http://www.morning.nytqy.cn.gov.cn.nytqy.cn http://www.morning.dschz.cn.gov.cn.dschz.cn http://www.morning.yjmns.cn.gov.cn.yjmns.cn