• Cleanflight Eclipse 配置


    可以尝试的两个配置文档

    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,看来入坑了呢。这和编译器自身行为有关,由于不影响编译,我就不深究了。

     

  • 相关阅读:
    送走2015,迎来2016
    Android-Volley网络通信框架(StringRequest & JsonObjectRequest)
    Mac上配置 Ruby on Rails和Git
    学习Javascript闭包(Closure)
    cocos2d-x 学习资源整理(持续更新...)
    android自己定义刷新类控件
    awk条件语句
    Leetcode 236 Lowest Common Ancestor of a Binary Tree
    Linux查看当前正在执行的进程
    Thinking in UML 学习笔记(三)——UML核心视图之类图
  • 原文地址:https://www.cnblogs.com/chainplain/p/11775398.html
Copyright © 2020-2023  润新知