本帖最后由 skinme01 于 2024-8-26 01:20 编辑

今天开发板刚到手。前几天就把VMware和Ubuntu虚拟机都装好了,开发环境也搞完了,开发板一到就开始测试了。测试下来发现,Ubuntu虽然对初学linux的同学来说,是个练手的好时机,可以感受一下命令行操作,但是虚拟机消耗资源很大,如果想使用IDE更方便地编程,虚拟机就太卡了。涉及到多个.c/.h或复杂目录的情况下,再用软件教程上给的命令行编译就过于复杂了。


经过几小时的研究,我成功在Windows上搭建了ELFBoard编译环境,使用主流IDE——CLion编写代码,其代码洞察和自动补全可以让写代码事半功倍,而且还能通过FTP,SFTP直连开发板,直接编译到开发板内,无需繁琐的文件传输。


第一步:交叉编译工具链下载


软件教程pdf内已经包含了linux系统下的交叉编译链的安装教程。我们要找Windows下的交叉编译链。这里作者找了挺久,教程文档里连文件源网址都不给,只能通过命名方式寻找线索,最后还是找到了。这里提出差评。
QQ20240826-002125.png




(本教程使用的版本为7.5.0)

下载完成后解压到你能找得到的目录下,并妥善保存。



第二步:CLion配置与编译


打开CLion,新建项目:

QQ20240826-003821.png QQ20240826-004025.png
新建完工程之后,CLion会自动执行CMake。由于现在配置是错误的,CMake必然报错,不要慌张啦
打开设置,我们需要配置新的工具链。按照如图配置。注意C编译器处要选择你刚解压的目录里的编译器,就在bin文件夹内。选择正确的话,三个绿色对勾会同时出现。!!!最后一定要把新建的工具链配置置顶,变成默认!!!
QQ20240826-004443.png
但现在CMake依然不通过,报错如下:
QQ20240826-004815.jpg
这是说明你已经成功一半了。该报错出现的原因是:CMake依旧认为你在编译Windows程序,会尝试生成exe文件以测试编译器,当然不行啦。依据CMake官方说明,当涉及到交叉编译时,我们需要手动添加几项配置,告知CMake我们的目的。下面打开CMakeList.txt文件!

QQ20240826-005158.png

1、需要告知目的平台的系统名称;2、需要告知目标平台的处理器架构。在project命令前,增加两行代码:

  1. set(CMAKE_SYSTEM_NAME Linux)
  2. set(CMAKE_SYSTEM_PROCESSOR arm)
复制代码
3、增加编译器选项,以正确编译代码(在add_executable命令前加)

  1. set(CMAKE_C_FLAGS "-march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7")
  2. set(CMAKE_CXX_FLAGS "-march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7")
复制代码
4、清除缓存,并重新加载CMake项目:

QQ20240826-005722.png

这时,你会发现报错消失了,CMake成功啦!!!右上角的小锤子也出现了,我们点击小锤子编译代码,编译成功!

QQ20240826-010022.jpg

生成的可执行文件在cmake-build-debug目录下,文件名就是工程名,且没有后缀名。



第三步:程序发送至开发板并运行

无需离开CLion,就能将程序发送至开发板并观察运行效果!!

我们将开发板上电,联网,记下IP,用CLion与开发板建立SSH连接:

QQ20240826-010636.png

主机用户名自己填一下,应该不陌生
QQ20240826-010853.png
我们点击本地终端,通过cd命令进入cmake-build-debug目录,使用scp命令将程序传输至开发板:
QQ20240826-011135.png
第一次上传,默认没有执行权限。需要用chmod -R 777 demo命令修改权限。以后再上传,即使覆盖掉文件,也不会有权限问题了!
接着输入./demo看看效果:
QQ20240826-011432.png

OHHHHHHHHHH!

以后就能用Windows+CLion开发Linux的C接口程序了,哈哈!

不知道有么有精华帖之类的,管理员能不能赏一个呀
本教程暂时就到这,欢迎评论。现在作者正在被FTP与SFTP连接不上的问题困扰,搞了几小时了。如果问题解决了,就可以尝试直连开发板编译了。敬请期待~


    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Powered by Discuz! X3.5  © 2001-2013 Comsenz Inc.