在windows下开发嵌入linux的C应用程序

linux 嵌入式 Eclipse C
jn1989
发布时间: 2018-05-14
阅读: 3847

前言

众所周知,开发嵌入式linux程序首选桌面的linux操作系统,例如ubunt等,或者MACos,但是如果仅仅开发应用程序而不打算修改内核和驱动的话,也可以使用windows操作系统,使用eclipse+CDT+arm-linux-gcc(交叉编译器)进行开发。这样就省去了切换操作系统或者使用虚拟机的方法。

本文以i.mx6ul为例,介绍在windows下用C语言开发嵌入式linux程序的方法,不过该方法适用于所有在windows下的linux应用开发。


软件下载及安装

总共需要安装3个软件,分别是交叉编译器、JDK和eclipse for c/c++,当然如果安装过比较新版本的JDK可以跳过JDK安装步骤。


交叉编译器下载及安装

由于使用的CPU是i.mx6ul(PCIMX6G2C),因此使用的是arm-linux-gnueabihf交叉编译器。使用不同处理器建议选择和linux内核相同的交叉编译器,防止应用程序编译后运行确实库文件。

arm-linux-gnueabihf交叉编译器官方下载地址为:

http://releases.linaro.org/components/toolchain/binaries/4.9-2016.02/arm-linux-gnueabihf/

或者使用国内网友上传的地址:

https://pan.baidu.com/s/1nthwyq1

下载后安装即可,安装可以一路默认(安装在C盘)或者自选目录,如果更改安装目录请一定记得安装路径,后面要用到。

如果用到其他交叉编译器请自行搜索。


JDK下载及安装

JDK下载地址为:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

推荐安装最新版本以保证新版本eclipse可正常运行。


eclipse 下载及安装

eclipse下地址为:

https://www.eclipse.org/downloads/eclipse-packages/

选择Eclipse IDE for C/C++ Developers

微信截图_20180509151627.png

根据系统版本选择32或者64位,下载后为绿色版本,解压即可运行。


启动Eclipse及新建工程


第一次启动eclipse

双击 eclipse.exe,启动 Eclipse。第一次启动会要求设置 workspace,如下图所示,如果不希望每次都出现该提示框,可勾选界面中的复选框。
             eclipse默认文件夹

点击 OK,即可进入 Eclipse 的欢迎界面,关闭欢迎界面,进入如下图所示的 EclipseIDE for C/C++主界面。

Eclipse主界面.png


新建C工程

点击主界面 File→New→C Project,选择创建 C 工程。 在弹出的工程创建界面,设置工程名称为“hello”,工程类型为“Empty Project”, Toolchain
选择使用“Cross GCC”, 如下图所示:

eclipse新建工程.png

设置好后,点击 Next,在配置界面选中“Debug”和“Release”两个编译目标。点击 Next设置交叉编译工具前缀和路径。
前缀和路径记得设置正确,本例子中使用的交叉编译器是arm-linux-gnueabihf因此设置前缀为:arm-linux-gnueabihf-

我使用的默认安装,所以路径为:C:\Program Files (x86)\Linaro\gcc-linaro-arm-linux-gnueabihf-4.9-2014.07\bin

注意路径要到bin目录下,即使有arm-linux-gnueabihf-gcc.exe所在的目录

Eclipse交叉编译器路径.png


然后点击 Finish 按钮,完成工程创建,得到一个空工程,接下来将添加一个 C 程序文件到该工程,并编写 C 代码。
点击
FileNew→Source File,选择创建源文件,如下图
Eclipse新建源文件.png

Source File 界面,设置文件名为“hello.c”,使用默认C模板,点击 Finish,得到添加了 hello.c 的工程 。
eclipse工程界面.png

在其中添加如下代码并保存


#include <stdio.h> int main (int argc, char *argv[]) { printf(“hello world\n”); return 0; }

交叉编译工程

把代码编写完成,如果直接编译会出错,还需进行设置。点击 ProjectProperties,打开工程属性设置窗口,点击 C/C++ Build 栏的 Tool Chain Editor, Current builder 设置为“CDT Internal Builder”,如下图所示,然后点击 Apply 保存,最后点击 OK 按钮。
Eclipse编译器选择.png

然后点击 ProjectBuilder Project, 编译工程。 或者点击界面上的小锤子图标编译。

提示:编译之前记得保存,否则编译的是之前保存的工程。


建立远程连接

Eclipse 主界面,点击 FileNewOther,在如下图所示的窗口选择建立“Remote System Explorer”,选择 Connection 后点击 Next 

Eclipse新建远程连接.png
在下一个界面选择“SSH Only”,选择建立 SSH 连接。 

出现如下图所示的 SSH 连接设置界面,在 Host name 栏填写目标板的 IP 地址,如192.168.1.137Connection name 栏会自动填写为目标板 IP 地址,也可以修改,点击 Finish完成设置。 

Eclipse配置SSH连接.png

建立完成,依然是 C/C++程序界面视图。点击 Window→Open PerspectiveOther,在如下图所示的界面中选择“Remote System Explorer”,然后点击OK

Eclipse新建远程界面.png
Eclipse 将会切换到远程系统视图,如所示下图,可以看到连接名称为“192.168.1.137”的远程系统 

Eclipse远程界面.png

右键单击连接名称,选择 Connect,出现 SSH 连接登录设置界面,在其中填写登录名和密码,如下图所示。为了方便以后连接,可选择保存密码。 

Eclipse远程登录.png

第一次连接会出现警告,点击确定即可。


复制文件到目标板

点击右上角监视窗口的 C/C++标签,切换到 C/C++视图,右键点击 hello 工程 Binaries下的“hello – [arm/le]”,选择 Copy,复制 hello 文件。 

然后再点击监视窗口的“Remote System Explorer”标签,切换到远程系统视图,点击展开“/root”,找到 opt 文件夹,在右键菜单选择 Paste,将已复制的ello 文件粘贴到目标系统的“/opt”目录下。
Eclipse复制文件.png


运行文件

使用putty或者其他远程工具连接目标板,进入/opt目录下运行如下命令,赋予hello文件可执行权限

chomd +x hello

然后再运行该文件

./hello

即可看到打印的结果了

微信截图_20180509162106.png


结束语

本文方案适用于所有在windows环境下开发linux程序的方法,不管是嵌入式ARM-linux,还是x86的linux或者服务器等都可行,但如果是后两者更推荐直接在linux下开发,毕竟更直观和方便。而嵌入式程序一般比较简单,而且无论在乌班图下还算在windows下都需要交叉编译等过程,因此在更熟悉的windows下开发更方便一些。


原创作品,未经权利人授权禁止转载。详情见转载须知 举报文章

点赞 (1)
jn1989
评论(0)

登录后可评论,请 登录注册

相关文章推荐
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回

我要举报该内容理由

×
请输入您举报的理由(50字以内)