【问题标题】:Setting up a STM32 solution with a shared library and multiple projects [closed]使用共享库和多个项目设置 STM32 解决方案 [关闭]
【发布时间】:2021-01-25 12:02:00
【问题描述】:

我使用 Rowley CrossWorks 作为我的 IDE。

我有几个使用 STM32CubeMX 创建的 STM32 项目,其中有几个文件现在共享,方法是将源文件夹复制到每个项目的“src”文件夹中。

这显然不是一个理想的解决方案。

如何最好地将项目合并在一起,以便构建单个项目,并引用相同的公共文件? 最好是“drivers”文件夹和“inc”文件夹也从一个公共位置共享。

【问题讨论】:

  • 符号链接可以在 Linux 上有所帮助,但我想它们可能会导致版本控制问题。也许 git 子模块可以提供帮助。我在这里有一个有点相关的问题:stackoverflow.com/questions/60010580/…
  • 最好将共享(外部)库保存在带有版本号的单独文件夹中(通常它们在文件夹名称中包含此类版本)。通过这种方式,您的一个项目可能会使用libX_ver_1.1 和其他libX_ver_2.2

标签: c stm32 cubemx


【解决方案1】:

是时候学习版本控制了——最流行和免费的是git

Git user manual

您的常用库 - GIT 子模块。

【讨论】:

  • 感谢您的意见。我也不能使用 GIT 或其他修订系统解决方案,因为由于公司政治原因,这是不可能的。我必须使用本地解决方案
  • @HenrikRuneJakobsen GIT 是本地。您可以在其他地方拥有上行链路,但不需要它。 GIT 不是 github.com 或 gitlab.com。 Git 数据驻留在您的本地计算机上 :)
  • @HenrikRuneJakobsen GIT 不等于 GitHub。 GitHub 就像一个公共主机——你可以使用 git 进行本地项目存储。
【解决方案2】:

我找到了解决办法

我将应用程序特定代码放在 src 文件夹中的一个文件夹中。例如 \src\ 和 \src\appX \src\appY

每个解决方案都放入 MDK-ARM 文件夹,然后我编辑项目文件

<folder Name="Application/User">
  <file file_name="../Src/AppX/main.c" />

  <file file_name="../Src/AppX/settingsHandler.c" />
  <file file_name="../Src/AppX/settingsHandler.h" />
  <file file_name="../Src/AppX/cryptography.c" />
  <file file_name="../Src/AppX/cryptography.h" />

...

<folder Name="Application/User">
  <file file_name="../Src/AppY/main.c" />

  <file file_name="../Src/AppY/blah.c" />
  <file file_name="../Src/AppY/blah.h" />
  <file file_name="../Src/AppY/foo.c" />
  <file file_name="../Src/AppY/foo.h" />

【讨论】:

    猜你喜欢
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多