【发布时间】: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 文件:
- 在项目中=>属性
- 点击 XC8 Linker 下的 Toolchain 选项卡
- 在库 (-l) 窗口中单击库
- 单击“+”号并将“libalgobsec”添加到库中的列表中 搜索路径 (-L) 窗口
- 在“添加库搜索路径 (-L) 对话框中单击“+”号
- 单击“...”按钮 在文件对话框中,导航到文件夹 包含 libalgobsec.a
- 点击确定。
- 在项目属性下 => 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