ATMEL Studio 添加自己的库

Posted

技术标签:

【中文标题】ATMEL Studio 添加自己的库【英文标题】:ATMEL Studio adding own library 【发布时间】:2017-04-23 07:44:34 【问题描述】:

我尝试将我的 USART 库添加到我的项目中,但我仍然无法正确添加它以便将其识别。

我创建了一个我想要添加的 USART.c 和 USART.h 文件。这是我尝试过的:

1) 右键单击​​解决方案/属性/工具链/目录 2)添加我得到这两个文件的路径

当我尝试构建项目时,它不起作用。我收到消息undefined reference to 'initUSART'

那么我如何将我自己的库添加到项目中?

【问题讨论】:

【参考方案1】:

您问题中的屏幕截图显示您安排编译器为您的库查找头文件。但是您还需要使用编译器来编译您的库函数(例如 initUSART)并创建一个静态库文件(带有 lib 前缀和 .a 扩展名)。为此,您需要一个单独的 Atmel Studio 项目,或者学习如何在 IDE 之外使用 AVR GCC 工具链来编译库。然后您需要将该文件放在链接器的库搜索路径中的目录中,然后您需要将适当的-l 参数传递给链接器。例如,如果您的库名为libuart.a,则需要将-luart 传递给链接器。 Atmel Studio 项目的项目属性具有您需要配置的相关设置。

GCC 有一个标准的方法来编译、创建和链接到静态库,我在上面概述了。您可以从任何有关 GCC 静态库的教程中了解这一点。然后,您需要将该知识应用于AVR GCC Toolchain,并在您需要设置的Atmel Studio内找到应用程序。

旁白: Atmel Studio 根本无法轻松使用库。 Arduino IDE 做得更好,因为您只需将库的源文件放在正确的位置,它就会为您编译它们。也有大量的 Arduino 库;如果您可以使用 Arduino 平台,您将不必编写自己的 UART 驱动程序。

简单的替代方案:如果您对编译和链接到 C 库以及配置 IDE 了解不多,只需将库文件复制到项目中,添加它们作为源文件,并让 Atmel Studio 像您项目中的任何其他源文件一样编译它们。

【讨论】:

【参考方案2】:

另一种向项目添加文件夹的简单方法是将文件夹复制/粘贴到项目中,然后打开 Atmel Studio。

在右侧(默认情况下解决方案资源管理器在哪里),您将看到所有文件,除了您刚刚添加的文件。现在按 显示所有文件 并搜索应该显示为灰色的文件夹。 右键单击它并包含在项目中。应该就是这样!

这张图片应该有帮助

【讨论】:

没有图片链接到答案

以上是关于ATMEL Studio 添加自己的库的主要内容,如果未能解决你的问题,请参考以下文章

将 Arduino 库添加到 Atmel Studio 7 AVR C++ 项目 - 缺少 Arduino.h

Visual Studio 2013 - 如何在我自己的库中链接/包含其他库

SparkFun 的 Arduino Pro Micro 和 Atmel Studio 缺少串行端口

Atmel Studio 7 如何编译和调试 Arduino 代码?

Atmel Studio:行尾出现垃圾错误

Win7补丁更新失败导致Atmel studio软件安装失败,如何解决?