STM32CubeIDE 编译C/C++程序
文章转自 https://www.cnblogs.com/skyofbitbit/p/3708216.html
STM32CubeIDE 其实就是STM32CubeMx + eclipse
首先,Windows下用eclipse玩C/C++用到一下三个东西:
1、 eclipse
2、 CDT(一个在eclipse开发C++的插件)
3、 Cygwin(Windows平台的unix模拟程序,包含了gcc和g++),有人说用MinW,但我选择了Cygwin,我想是差不多的,我之所以选择Cygwin是因为它更能大部分模拟unix命令,也很方便。
一、Eclipse下载与安装
Eclipse可以直接去官网下载,Google就可以搜到网址,不多说了。Eclipse是免安装的,下载直接用。
二、CDT下载与安装
CDT可以直接下载带有CDT版本的eclipse,亦或者在eclipse的help菜单处查找更新,下载,安装,尤其你是Java程序员的时候。更新方法如下:
1. 打开eclipse,然后:
2. 再在相应的地方输入以下网址,回车,下面出现的可更新软件选项全都勾上,如图:
http://download.eclipse.org/tools/cdt/releases/indigo
然后点击next,下载,就OK了。
当然,如果你做android的,直接去android的官方开发网站下载android开发版本的eclipse,也就是eclipse+ADT其中也带有CDT了。
3. Cygwin下载与安装
Cygwin同样直接Google搜索官方网站下载安装程序,打开安装程序setup.exe,然后选install from internet,接着选择存放位置,代理服务器什么的,最后选择好下载服务器(默认会选择最快的服务器),进入下载列表,这个列表就是要求你下载什么程序的列表,请务必安装以下程序,最恼人的就是,这些必备的程序统统都不是默认安装的。所以,请使用搜索功能,找到这些程序,然后自己勾上,务必安装:
1. 搜索g++和gcc,把相应的程序都勾上;
Gcc的太多了,不截图了,有gcc的能勾都勾上吧,宁杀错,不放过!
顺便说一下,我之前已经安装好了,所以可以看到图中New这一栏中是写着keep,如果没安装,应该是写版本号。如果你真的漏掉什么没安装,重新进入这个setup的时候务必在右上角选择keep这个选项,否则默认下选Cur会把所有软件都重新安装一遍,时间会很长!
2. 搜索gdb,同样勾上devel目录下的程序(我已经装了,所以是显示keep):
3. 搜索make,同样勾上debug和devel目录下的程序。
然后点击next,就可以下载和安装了,第一次过程有点长,耐心……
三、配置
关键时候到了,这个时候就开始配置了。其实配置并不是很复杂,但真心需要耐心在茫茫eclipse的各个选项中慢慢摸索。Ok一步步来。
1. 配置环境变量
貌似开源阵营最喜欢搞环境变量,cygwin也不例外,毕竟是从Linux过来的东西。配置过环境变量的人都应该轻车熟路,我的是vista系统,其他系统如何设置环境变量可以上网Google,不难:
右击我的电脑->属性->高级环境设置->环境变量,然后在系统变量里面找到path这个变量,双击,在原有的基础上加上cygwin的bin路径(注意,每个路径之间需要有分号隔开)。例如我的cygwin是保存在D:\linux\linux,那么加入的环境变量路径就是D:\linux\linux\bin。
然后点击确定,保存。按ctrl+r,在弹出的cmd对话框中试试以下命令是否ok?
输入:make –v会有make的版本信息打印出来,同理gcc –v,gdb -v和g++ -v也都有版本信息打印出来,这些没问题了,就表明cygwin的配置到此结束了。
2. 配置eclipse
首先,启动eclipse,在菜单中点Windows->preferences,然后勾上图中所示选项,这是让cygwin编译生成Windows的PE文件:
若之后调试时出现no binaries错误(设置上面这一步不太可能出现这个问题),则去菜单project->preferences,勾下面图中这个选项:
接着就可以新建工程了,打开eclipse,新建一个C++工程:
点击next,然后输入项名称,并在tool chain上选cygwin
没有cygwin这个tool chain怎么办?那就选other tool chains,最后点finish,项目就生成了:
如果之前选的是other tool chains是没有includes这个目录的,这个includes目录怎么出来的呢?右击项目名称,选properties,在弹出的对话框中选择C/C++ build->Tool chain Editor:
在current toolchain的下拉列表中选cygwin,如果下拉列表没有cygwin,就把上面那个Display compatible tool chain only那个勾去掉,下拉列表就会出现cygwin了。请确保usedtools中包含cygwin的C++ compiler和linker,若不包含,就点select tools按钮加上,这个操作很直观,就不截图了。
确定保存这些选项后,回到主界面,这个时候就会发现includes目录出现了。
接着,单击New按钮,也可以右击工程名,选择New,新增一个cpp文件:
输入经典的hello world:
按理来说这个时候点击就可以编译链接程序了:
但这里只会编译链接,但不会运行,也不会调试程序,而是出现没有找到program的错误。eclipse没有送佛送到西,好人做到底,我们还得手动做个简单的配置:
进入debug configuration对话框,选择C/C++application->test debug:(test是我的工程名)
点击search project按钮,在弹出的对话框中:
选择刚才编译出来的exe文件,再试一次:
Hello world终于打印出来了:
这个时候你可以设置断点,单步调试程序了,配置基本到此结束,开始享受传说中的gcc/g++和gdb吧
STM32CubeIDE 编译C/C++程序的更多相关文章
- 使用VS+VisualGDB编译调试Linux程序
Linux程序开发变得越来越多,越来越多的程序.产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要. 但是对于习惯了Windows下的开发,使用了VS这个宇宙第 ...
- 如何编译ReactNative示例程序Examples
通过示例程序可以看到一些基本组件的使用,对于学习ReactNative是很有帮助的. 编译示例程序需要将整个项目导入到androidStudio中,androidStudio导入项目时选择react- ...
- Ubuntu编译源码程序依赖查找方法
ubuntu平时编译源码程序的时候会提示缺少相关的库或是头文件,可以按照以下两种方法进行查找,然后再安装相应的软件包. 1.使用apt-file查找头文件 安装apt-file sudo apt-ge ...
- VS2010 win7 QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序
下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0 ...
- 运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file: No such file or directory
运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file: No such f ...
- 减小Delphi XE5编译出来的程序体积
默认Delphi XE, XE2, XE3,XE4,XE5, XE6 ... 编译出来的程序体积很大. 一般用两个方法可以很大程度上减少程序体积. 一.在工程中用编译指令禁用RTTI 禁用的方法很简单 ...
- linux终端下 编译c语言程序
linux终端下,编译C语言程序步骤为: 采用vi进行源代码编写,编写完成后,:wq存盘退出,如: vi test.c 在命令行下,运行gcc编译程序,生成执行码,如: gcc -o test te ...
- VS编译的QT程序发布时产生的AppCrash问题
至少我碰到了三个情况,都是AppCrash错误(以下都指VS2008的Release的设置) 第1个错误,报错模块是程序自己 我使用VS2008 Team with SP1和QT4.86编译程序,一直 ...
- 【转】VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”
原文网址:http://www.cnblogs.com/Dageking/archive/2013/05/15/3079394.html VS2012编译出来的程序,在XP上运行,出现“.exe 不是 ...
随机推荐
- 记一次RocketMQ源码导入IDEA过程
首先,下载源码,可以官网下载source包,也可以从GitHub上直接拉下来导入IDEA.如果是官网下载的source zip包,直接作为当前project的module导入,这里不赘述太多,只强调一 ...
- windows系统下hosts文件的改写(为了测试nginx内网的证书代理,需要做域名解析)
1. win加R C:\WINDOWS\system32\drivers\etc 2.打开hosts文件 加入一行 IP为客户机要访问的IP地址 域名也是在nginx中定义好的 3.ct ...
- C#多态学习总结
面向对象编程三大特点 封装 继承 多态.今天我把自己学习多态的过程进行总结 多态 就是 同一个方法在不同情况下,会表选不同的效果(多个形态).在代码上表现就是 同一个父类对象 赋予不同的子类对象 就 ...
- mybatis 多参数传递
参考: 1. MyBatis传入多个参数的问题 http://www.cnblogs.com/mingyue1818/p/3714162.html2. MyBatis报错 Parameter '0' ...
- Windows 10 20H1版名称被定为Windows 10 Version 2004版以示区分
导读 我们知道Windows 10 20H1 版目前的开发工作已经接近完成,当前微软主要通过新版本来修复部分已知的问题. 而名称上面按照以往规律推算应该是 Windows 10 Version 200 ...
- EC20的指令
AT+QURCCFG="urcport","usbat" :当设置在主串口时且用主串口进行AT交互时开机会收到一串状态的信息,默认USBAT就不会 AT+IPR ...
- Linux命令:iostat命令
Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况.同 ...
- Mongodb - 解决 ( aggregate聚合管道 ) $match 根据 id 匹配 返回 [ ] 的问题
需要对 id 进行转换 const mongoose = require('mongoose') var ObjectId = mongoose.Types.ObjectId; await Use ...
- Linux centos7iptables filter表案例、iptables nat表应用
一.iptables filter表案例 vim /usr/local/sbin/iptables.sh 加入如下内容 #! /bin/bash ipt="/usr/sbin/iptable ...
- Kafka 启动报错java.io.IOException: Can't resolve address.
阿里云上 部署Kafka 启动报错java.io.IOException: Can't resolve address. 本地调试的,报错 需要在本地添加阿里云主机的 host 映射 linux ...