Cleanflight Eclipse 配置

谁都会走 提交于 2019-12-03 03:49:27

可以尝试的两个配置文档

http://blog.csdn.net/guo8113/article/details/50412469

 

https://github.com/cleanflight/cleanflight/blob/master/docs/development/Building%20in%20Eclipse.md

BTW

Git在这里down就好https://git-scm.com/download/win

 

注意CDT也需在eclipse的软件中配置

 

Cleanflight的默认make文件夹下的tool.mk中GCC版本要求是6.3.1而官网推荐的是5.4.1,并未找到具体的解决办法。直接改变编译文件将版本号修改之后会出现如下的问题。

 

故不确定是否更改。

在tool的makefile中更改了第19行,原版本是6.3.1

 

Malefile是什么?

一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令

下载的时候可能会出错,最近不太稳定,多试几次。

上面的方法并未真正编译成功其中并没有成功生成obj文件。找到一个新的下载地址

可能是6.3.1的

https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads

下载之后确实可用

 

重新下载获得的信息 build all

 

注释掉1301行

 

最终下图表示已经完成编译

 

以上还是出现问题,并未生成obj

ELF (文件格式) 编辑

在计算机科学中,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。

是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的,也是Linux的主要可执行文件格式。

1999年,被86open项目选为x86架构上的类Unix操作系统的二进制文件标准格式,用来取代COFF。因其可扩展性与灵活性,也可应用在其它处理器、计算机系统架构的操作系统上。

升级GCC后错误内容依旧是

 

且cygwin确实比mingw在这里快一些

出现的错误信息是

Linking STM32F3DISCOVERY

d:/6 2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe: obj/main/cleanflight_STM32F3DISCOVERY.elf section `.text' will not fit in region `FLASH'

d:/6 2017-q1-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld.exe: region `FLASH' overflowed by 67270 bytes

collect2.exe: error: ld returned 1 exit status

Makefile:1243: recipe for target 'obj/main/cleanflight_STM32F3DISCOVERY.elf' failed

make[1]: *** [obj/main/cleanflight_STM32F3DISCOVERY.elf] Error 1

make[1]: Leaving directory 'D:/FCcode/cleanflight'

make: *** [hex] Error 2

Makefile:1355: recipe for target 'hex' failed

这里溢出的有点多吧。

HEX文件简析

http://www.forwhat.cn/post-240.html

不论刷什么固件都有错

继续找

recipe for target 'obj/main/cleanflight_STM32F3DISCOVERY.elf' failed

 

 

Mingw和cygwin的不同环境配置

D:\Build Tools\bin;C:/Program Files/Java/jre1.8.0_131/bin/server;C:/Program Files/Java/jre1.8.0_131/bin;C:/Program Files/Java/jre1.8.0_131/lib/amd64;C:\ProgramData\Oracle\Java\javapath;F:\CTEXex\UserData\miktex\bin;F:\CTEXex\MiKTeX\miktex\bin;F:\CTEXex\CTeX\ctex\bin;F:\CTEXex\CTeX\cct\bin;F:\CTEXex\CTeX\ty\bin;F:\CTEXex\Ghostscript\gs9.05\bin;F:\CTEXex\GSview\gsview;F:\CTEXex\WinEdt;C:\Users\Administrator\AppData\Roaming\npm;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\Downloads\eclipse;D:\OpenOCD\bin;D:\6 2017-q1-update\bin;D:\6 2017-q1-update\arm-none-eabi\bin;D:\Mingw\bin;D:\Mingw\msys\1.0\bin;D:\Mingw\mingw32\bin

 

D:\Build Tools\bin;C:/Program Files/Java/jre1.8.0_131/bin/server;C:/Program Files/Java/jre1.8.0_131/bin;C:/Program Files/Java/jre1.8.0_131/lib/amd64;C:\ProgramData\Oracle\Java\javapath;F:\CTEXex\UserData\miktex\bin;F:\CTEXex\MiKTeX\miktex\bin;F:\CTEXex\CTeX\ctex\bin;F:\CTEXex\CTeX\cct\bin;F:\CTEXex\CTeX\ty\bin;F:\CTEXex\Ghostscript\gs9.05\bin;F:\CTEXex\GSview\gsview;F:\CTEXex\WinEdt;C:\Users\Administrator\AppData\Roaming\npm;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\Downloads\eclipse;D:\OpenOCD\bin;D:\6 2017-q1-update\bin;D:\6 2017-q1-update\arm-none-eabi\bin;D:\Cygwinroot\bin;D:\Cygwinroot\sbin; D:\Git\bin; D:\Git\mingw64\bin; D:\Git\usr\bin

前面一堆就别看了,安装CTEX。。。写论文用的、

此网站上反映了和我类似的问题,值得一看

https://github.com/cleanflight/cleanflight/issues/1298

这哥们和我的错误是一模一样的可惜没有answer

 

https://github.com/cleanflight/cleanflight/issues/2678

这个更贴切,以后多查GitHub下讨论区吧,受益匪浅。

 

啊啊啊O(≧口≦)O配置clean之后重编译再也不能编译了。

头痛不已,重新下一下

 

这次把子模块下下来看看.

其实下下来好像没啥用,多了一个git也没有引入项目。但是把debug去掉之后貌似是编译成功了。和这人建议类似

 

这次编译的结果如下,说明应该就是编译出来的文件过大的原因。

 

到这里还没有完

在两个文件中出现了成堆的error,不明觉厉

 

按道理这几个东西应该在库里定义好了才对

 

果不其然,找不到这几个库,当然现在已经算可以编译了,然而这几百个错误标记黄得我尴尬症犯了。

 

http://help.eclipse.org/kepler/index.jsp?topic=/org.eclipse.cdt.doc.user/tasks/cdt_t_proj_paths.htm

中写了具体的操作方法,然而我并找不到配置啥,找了包含math.h的directory但就是没啥用。对了那个写配置方法的大神说在windows里我宁愿在cygwin里编也不拽eclipse,看来入坑了呢。这和编译器自身行为有关,由于不影响编译,我就不深究了。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!