ATMEL Studio 添加自己的库
ATMEL Studio adding own library
我尝试将我的 USART 库添加到我的项目中,但我仍然无法正确添加它以便识别它。
我创建了一个 USART.c 和 USART.h 文件,我想将其添加。这是我试过的:
1) 右击解决方案/属性/工具链/目录
2) 添加我得到这两个文件的路径
当我尝试构建项目时,它没有成功。我收到消息 undefined reference to 'initUSART'
。
那我如何将自己的库添加到项目中?
您问题中的屏幕截图显示您安排编译器为您的库查找头文件。但是您还需要使用编译器来编译您的库函数(例如 initUSART)并创建一个静态库文件(具有 lib
前缀和 .a
扩展名)。为此,您需要一个单独的 Atmel Studio 项目,或者学习如何使用 IDE 之外的 AVR GCC 工具链来编译库。然后您需要将该文件放在 linker 的库搜索路径中的目录中,然后您需要将适当的 -l
参数传递给 linker。例如,如果您的库名为 libuart.a
,您需要将 -luart
传递给 link er。 Atmel Studio 项目的项目属性具有您需要配置的相关设置。
GCC 有一个标准的方法来编译、创建和 link 静态库,我在上面概述了这一点。您可以从有关 GCC 静态库的任何教程中了解这一点。然后,您需要将该知识应用于AVR GCC工具链,并在您需要设置的Atmel Studio中找到合适的选项。
旁白: Atmel Studio 根本无法轻松使用库。 Arduino IDE 做得更好,因为你只需将库的源文件放在正确的位置,它就会为你编译它们。还有大量的 Arduino 库;如果您可以使用 Arduino 平台,您就不必编写自己的 UART 驱动程序。
简单的替代方法:如果您不太了解编译和linking 到 C 库以及配置您的 IDE,您会只需将库文件复制到您的项目中,将它们添加为源文件,然后让 Atmel Studio 像您项目中的任何其他源文件一样编译它们,就可以轻松得多。
将文件夹添加到项目的另一种简单方法是 copy/paste 将文件夹添加到项目中,然后打开 Atmel Studio。
在右侧(默认情况下是解决方案资源管理器),您将看到除刚刚添加的文件之外的所有文件。现在按 显示所有文件 并搜索应该显示为灰色的文件夹。 右键单击 并包含在项目中。就这些吧!
这张图片应该有帮助
我尝试将我的 USART 库添加到我的项目中,但我仍然无法正确添加它以便识别它。
我创建了一个 USART.c 和 USART.h 文件,我想将其添加。这是我试过的:
1) 右击解决方案/属性/工具链/目录 2) 添加我得到这两个文件的路径
当我尝试构建项目时,它没有成功。我收到消息 undefined reference to 'initUSART'
。
那我如何将自己的库添加到项目中?
您问题中的屏幕截图显示您安排编译器为您的库查找头文件。但是您还需要使用编译器来编译您的库函数(例如 initUSART)并创建一个静态库文件(具有 lib
前缀和 .a
扩展名)。为此,您需要一个单独的 Atmel Studio 项目,或者学习如何使用 IDE 之外的 AVR GCC 工具链来编译库。然后您需要将该文件放在 linker 的库搜索路径中的目录中,然后您需要将适当的 -l
参数传递给 linker。例如,如果您的库名为 libuart.a
,您需要将 -luart
传递给 link er。 Atmel Studio 项目的项目属性具有您需要配置的相关设置。
GCC 有一个标准的方法来编译、创建和 link 静态库,我在上面概述了这一点。您可以从有关 GCC 静态库的任何教程中了解这一点。然后,您需要将该知识应用于AVR GCC工具链,并在您需要设置的Atmel Studio中找到合适的选项。
旁白: Atmel Studio 根本无法轻松使用库。 Arduino IDE 做得更好,因为你只需将库的源文件放在正确的位置,它就会为你编译它们。还有大量的 Arduino 库;如果您可以使用 Arduino 平台,您就不必编写自己的 UART 驱动程序。
简单的替代方法:如果您不太了解编译和linking 到 C 库以及配置您的 IDE,您会只需将库文件复制到您的项目中,将它们添加为源文件,然后让 Atmel Studio 像您项目中的任何其他源文件一样编译它们,就可以轻松得多。
将文件夹添加到项目的另一种简单方法是 copy/paste 将文件夹添加到项目中,然后打开 Atmel Studio。
在右侧(默认情况下是解决方案资源管理器),您将看到除刚刚添加的文件之外的所有文件。现在按 显示所有文件 并搜索应该显示为灰色的文件夹。 右键单击 并包含在项目中。就这些吧!
这张图片应该有帮助