我尝试将我的USART库添加到我的项目中,但我仍未能正确添加它以便识别它。
我创建了一个USART.c和USART.h文件,我想添加它。这就是我试过的:
1)右键单击解决方案/属性/工具链/目录 2)添加我获得这两个文件的路径
当我尝试构建项目时,它不起作用。我收到了消息undefined reference to 'initUSART'
。
如何将自己的库添加到项目中呢?
答案 0 :(得分: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像编译项目中的任何其他源文件一样编译它们。
答案 1 :(得分:0)
将文件夹添加到项目中的另一种简单方法是将文件夹复制/粘贴到项目中,然后打开Atmel Studio。
在右侧(默认为解决方案资源管理器),您将看到除刚添加的文件以外的所有文件。现在按显示所有文件并搜索您的文件夹,该文件夹应显示为灰色。 右键单击,然后将其包含在项目中。那应该是全部!
此图片应该有帮助