由于时间较长,我为stm32f4处理器编写嵌入式系统软件。
直到现在,我使用自己的工具链和自己的makefile来构建二进制文件。为了具有IDE的优势,我决定将项目集成到Eclipse (stm32工作台: stm32控制器的eclipse )中。为了停止拥有自己的工具链,我现在使用集成的AC6工具链。
我要做的大部分事情都很好。
我的问题
在我自己的makefile中,我有以下条目:
SVNREPREV := $(shell ./svnversion.sh ./inc/ ./Drivers/ ./libs/ ./linkerscripts/ ./makefsdata/ ./src/)
XCFLAGS += -DSVNREPOVERSION=\"$(SVNREPREV)\"(外壳脚本返回一个类似于-> 1234:1234M的值,它将被转换为字符串)
我可以在我的c代码中使用这个值,如下所示:
const char svnRepoRevision[] = SVNREPOVERSION;我的问题
如何使用AC6工具链在Eclipse/stm32 32工作台中实现类似的行为并创建makefile?
我的尝试
添加项目->属性下的符号-> C/C++生成->设置->生成步骤->符号
SVNREPREV=$(shell ../svnversion.sh ../inc/ ../Drivers/ ../libs/ ../linkerscripts/ ../makefsdata/ ../src/)
SVNREPOVERSION="SVNREPREV"生成以以下错误结束:
arm-none-eabi-gcc: error: ../src/): No such file or directory我试过不同版本的“设置”,但没有效果,每次都收到错误。
任何帮助都将不胜感激。
发布于 2017-04-05 14:21:04
手册
链接到使用的文档:这里
感谢松开向我展示了这个链接
Solution/Answer
右击投影仪文件夹->新->文件
SVNREV:='"$(shell ../svnversion.sh ../inc/ ../src/)"'
项目->属性-> C/C++构建->设置->构建步骤->单片机GCC编译器->符号
增值SVNREPOVERSION="$(SVNREV)“作为符号
构建现在运行良好,我收到了我的svn修订号。makefile.defs只执行一次。这将从使用的文件夹中读取所需的used修订。此值将被写入SVNREPOVERSION,我在代码中使用该值。
https://stackoverflow.com/questions/43230656
复制相似问题