2017-04-23 60 views
0

我试图将我的USART库添加到我的项目中,但我仍然无法正确添加它,因此它将被识别。ATMEL工作室添加自己的库

我创建了一个USART.c和U​​SART.h文件,我想添加它。这是我的尝试:

1)右键点击Solution /属性/工具链/目录 2)添加在那里我得到这两个文件

当我尝试建立项目的路径,它没有工作。我收到消息undefined reference to 'initUSART'

如何将我自己的库添加到项目呢?

enter image description here enter image description here

回答

2

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

GCC有一个标准的方式来编译,创建静态库,并链接到上面概述的静态库。你可以从GCC静态库的任何教程中了解到这一点。然后您需要将这些知识应用于AVR GCC工具链,并在Atmel Studio中找到您需要设置的适当选项。

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

简单的选择:如果你不知道很多关于编译和链接到C库和配置IDE,你将有一个更容易的时间仅仅复制库文件到您的项目,将其添加为源文件,让Atmel Studio像编译你的项目中的其他源文件一样编译它们。