【问题标题】:How to include .a file in Atmel Studio on Windows?如何在 Windows 上的 Atmel Studio 中包含 .a 文件?
【发布时间】:2021-06-15 05:20:53
【问题描述】:

我正在尝试使用 Windows 平台中的 Atmel Studio 将 BME680 气体传感器模块与 AVR 控制器(具体为 Atmega644p)连接。 BME680 带有多个用于配置的 .h、.c 文件和一个 .a(静态库)的示例函数。 .h 和 .c 文件也在调用静态库中的一些函数,因此我们需要包含所有可用的 .h、.c 和 .a 文件。

.a 文件对我来说是新的,经过基本的网络搜索后,我得出结论,.a 文件适用于 Unix,因为 .lib 文件适用于 Windows。

那么你能找到我的方法吗:

将我手中的 .a 文件转换为 .lib 文件? 要么 在 Windows 平台的 Atmel studio 中添加 .a 文件?

我们将不胜感激。

我确实尝试使用以下步骤包含 .a 文件:

  1. 在项目中=>属性
  2. 点击 XC8 Linker 下的 Toolchain 选项卡
  3. 在库 (-l) 窗口中单击库
  4. 单击“+”号并将“libalgobsec”添加到库中的列表中 搜索路径 (-L) 窗口
  5. 在“添加库搜索路径 (-L) 对话框中单击“+”号
  6. 单击“...”按钮 在文件对话框中,导航到文件夹 包含 libalgobsec.a
  7. 点击确定。
  8. 在项目属性下 => XC8 链接器 => 其他 => 其他 对象,添加:-u _fstat -u _read -u _write

但它给出了这个错误:Compilation Error

【问题讨论】:

  • 我确实尝试使用以下步骤包含 .a 文件: 在 Project=>Properties 中,单击 Toolchain 选项卡 在 XC8 Linker 下,单击 Libraries 在 Libraries (-l) 窗口中,单击“ +" 符号并将"libalgobsec" 添加到列表中 在库搜索路径 (-L) 窗口中,单击"+" 符号 在"添加库搜索路径 (-L) 对话框中,单击"..."按钮 在文件对话框中,导航到包含 libalgobsec.a 的文件夹点击 OK 在 Project Properties => XC8 Linker => Miscellaneous => Other Objects 下,添加: -u _fstat -u _read -u _write 但它不起作用.
  • “不起作用”不是一个好的描述。您需要发布实际的错误完成消息。但是,如果他们提供 .c 文件,您可能只需自己编译这些文件并忽略 .a 文件,如果代码中存在错误或者您只是想了解其中发生的事情,这是更可取的。
  • @DavidGrayson 感谢您的回复,我找不到在评论中附加图片的方法,所以我更新了原始问题。基本上 .h 和 .c 文件也会调用静态库中的一些函数,所以我们需要添加所有 .h、.c 和 .a 文件。
  • 错误信息显示编译器找到了你的 .a 文件,但是因为不兼容而跳过了它。您究竟是在哪里找到该文件的?您怎么知道它与 AVR 兼容?也许它是一个 Linux 库之类的。
  • 所以 BOSCH 确实提供了对不同控制器的支持,因为从其网站下载的软件包支持 [这些] (i.imgur.com/BOqf3Eu.png) 控制器,而 AVR 有 these 子文件夹和每个子文件夹有these 文件以及一些通用配置files(和一个Arduino 示例)我已经尝试了AVR8_megaAVR 和AVR8_XMEGA 文件夹中的.a 文件,但它给出了同样的错误。

标签: static-libraries avr atmega atmel .a


【解决方案1】:

经过 2 个月的实验,与 BOSCH 的协调以及一切,这就是结论。

预编译库仅兼容具有 256 KB Boot Memory 的 AVR 控制器,并且仅列出以下 4 个控制器:

  1. ATmega2561
  2. ATmega2564RFR2
  3. ATmega2560
  4. ATmega256RFR2

因此,如果您尝试使用上述任何其他控制器(在我的情况下为 Atmega644P)编译 Atmega 控制器的 BSEC 软件中可用的 libalgobsec.a,它根本无法编译。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多