可以尝试的两个配置文档
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 Toolsin;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:ProgramDataOracleJavajavapath;F:CTEXexUserDatamiktexin;F:CTEXexMiKTeXmiktexin;F:CTEXexCTeXctexin;F:CTEXexCTeXcctin;F:CTEXexCTeX yin;F:CTEXexGhostscriptgs9.05in;F:CTEXexGSviewgsview;F:CTEXexWinEdt;C:UsersAdministratorAppDataRoaming pm;C:UsersAdministratorAppDataLocalMicrosoftWindowsApps;C:UsersAdministratorDownloadseclipse;D:OpenOCDin;D:6 2017-q1-updatein;D:6 2017-q1-updatearm-none-eabiin;D:Mingwin;D:Mingwmsys1.0in;D:Mingwmingw32in
D:Build Toolsin;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:ProgramDataOracleJavajavapath;F:CTEXexUserDatamiktexin;F:CTEXexMiKTeXmiktexin;F:CTEXexCTeXctexin;F:CTEXexCTeXcctin;F:CTEXexCTeX yin;F:CTEXexGhostscriptgs9.05in;F:CTEXexGSviewgsview;F:CTEXexWinEdt;C:UsersAdministratorAppDataRoaming pm;C:UsersAdministratorAppDataLocalMicrosoftWindowsApps;C:UsersAdministratorDownloadseclipse;D:OpenOCDin;D:6 2017-q1-updatein;D:6 2017-q1-updatearm-none-eabiin;D:Cygwinrootin;D:Cygwinrootsbin; D:Gitin; D:Gitmingw64in; D:Gitusrin
前面一堆就别看了,安装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,看来入坑了呢。这和编译器自身行为有关,由于不影响编译,我就不深究了。