我知道关于这个主题有很多问题,而且我已经研究了其中相当多的问题。但是我仍然遇到问题。
我开始为 PCB 原型编写测试程序,现在它已增长到近 1000 行,我正尝试将其分解为可用于特定功能的库。
我以为这会很简单。为我需要的每个库制作 .c 和 .h 文件。 IE。我将使用 OLED.h 和 OLED.c 来实现控制 OLED 显示屏的功能。将适当的函数/定义复制到每个文件中。然后将这些文件复制到 Atmel Studio 的解决方案中。我将它们放入项目名称下的 src 文件夹中。
然而,这不起作用!我收到一长串错误。就编译器而言,.h 文件中定义的所有内容显然都是未定义的。我还收到许多类型为“未知类型名称 int16_t/uint16_t/uint8_t/etc...”的错误消息,这部分对我来说确实令人困惑。为什么函数位于外部库中很重要,现在编译器不理解这些数据类型的含义?
所以,这可能是一个愚蠢的问题。我不希望 Atmel Studio 通过将它们包装在某些“库项目”或其他东西中来控制我的库,我想将它们放在我选择的文件夹中,并在需要时添加它们。我已经搜索了这个问题的答案,并且找到了有关更改项目的编译器设置、链接器设置等的长教程...我尝试了这个教程,但仍然没有骰子:http://www.engblaze.com/tutorial-using-avr-studio-5-with-arduino-projects/#setup
我也找不到通过右键单击项目并单击“添加”来添加内容的方法。它要我找到 .a 文件。 Atmel Studio 中的“添加库”对话框看起来很糟糕。
当然,仅仅将库添加到现有项目并使其正常运行不会那么复杂吗?!我过去使用过 PIC,来到 Atmel 后,我发现了可怕的文档和奇怪的超级光滑的超级飞翔的界面,它不能很好地单独放置,并且混淆了简单的功能。我可以做什么来添加这些库?
UPDATE:似乎回答了我自己的问题。结果我需要将所有用于识别数据类型等的库包含到 .c 文件中。我以某种方式认为这只需要在主文件中完成,但显然我错了。添加 asf.h 似乎效果很好,因为它包含所有 MCU 特定端口定义/名称等等。目前一切都好!
将库文件添加到解决方案应该很简单。转到解决方案资源管理器,右键单击您的解决方案,然后转到“添加->现有项目”。如果要添加预先存在的库并将其保存在与解决方案不同的文件夹中,请单击“添加”旁边的箭头并选择“添加为链接”。由于解决方案文件夹中存在库的重复副本,并且文件无法保持最新,因此可以避免许多麻烦。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)