打印
[其他产品]

XC8的附加PIC18外设库出现问题怎么解决

[复制链接]
1613|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
probedog|  楼主 | 2024-8-5 23:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是PIC18F26J50。我有一个老的XC8程序,它使用微芯片外接程序PIC18外围库中的SPI函数(与C18一起使用的那些外围库的更新/转换版本)。这个程序只包含一个主C函数,因此非常简单。程序编译和运行良好。当我在MPLLABX中创建一个全新的项目并合并旧的main.c函数(我已经复制并粘贴到新的项目文件夹中)时,我的问题就出现了。我得到一个错误消息:“OscStar4.c:47:error:(141)不能打开包含文件“spi.h”:没有这样的文件或目录(908)exit status=1。”这很奇怪,因为除了名称之外,原始项目和新的副本都是相同的(我已经检查了bo的Project Properties)。Th)编译器似乎找不到新项目的SPI库,而它可以为旧的项目找到!如果我进入Project Properties/XC8并在“包含目录”框中插入外围库的位置,则不再出现错误,而是因为找不到符号而生成失败。错误信息是:":0:error:(500)未定义的符号:":我使用的是Win1022位,MPLABX v3.30和xc8 v1.37(最新版本)。外围库是v2.00rc3周边库已经安装到....Micro./xc8/v1.37/include/plib中。这看起来像是随机的变态!有人能帮忙吗?

使用特权

评论回复
沙发
alxd| | 2024-8-22 12:01 | 只看该作者
确保SPI库文件(spi.h)确实存在于您指定的路径中。您提到库文件安装在 C:\Program Files (x86)\Microchip\xc8\v1.37\include\plib 中。请检查该路径下是否确实有 spi.h 文件

使用特权

评论回复
板凳
Belle1257| | 2024-8-22 13:04 | 只看该作者
在 MPLAB X 中,确保您的新项目正确设置了包含目录。您可以通过以下步骤进行设置:右键点击项目名称,选择 "Properties"。在 "Categories" 中选择 "XC8 Global Options"。在 "Include Directories" 框中,添加 C:\Program Files (x86)\Microchip\xc8\v1.37\include\plib 路径

使用特权

评论回复
地板
Carina卡| | 2024-8-22 14:10 | 只看该作者
建议确保您的项目正确链接了所需的库文件。在 "Project Properties" 中,选择 "Libraries" 类别,并添加所需的库文件。如果您不确定需要哪些库文件,可以参考原始项目的设置

使用特权

评论回复
5
Emily999| | 2024-8-22 15:13 | 只看该作者
清理和重建项目,有时候,编译器缓存可能导致问题。尝试清理和重建项目:在 MPLAB X 中,选择 "Clean and Build" 选项

使用特权

评论回复
6
Estelle1999| | 2024-8-22 16:15 | 只看该作者
一般是需要确保清理和重建过程中没有错误。

使用特权

评论回复
7
B1lanche| | 2024-8-22 17:23 | 只看该作者
其实可以检查符号定义,如果您在编译过程中遇到未定义的符号错误,确保您的代码中正确包含了所需的库文件,并且所有必要的初始化和配置都已经完成。例如,确保您在代码中包含了 spi.h 文件,并且正确调用了SPI库的初始化函数

使用特权

评论回复
8
Carmen7| | 2024-8-22 19:00 | 只看该作者
建议可以更新工具和库,确保您使用的 MPLAB X 和 XC8 编译器是最新版本。有时候,更新工具和库可以解决一些兼容性问题

使用特权

评论回复
9
Allison8859| | 2024-8-23 09:02 | 只看该作者
检查项目配置,确保新项目的配置与原始项目完全一致。包括编译器选项、链接器选项、包含目录等。有时候,细微的配置差异可能导致编译问题

使用特权

评论回复
10
Alina艾| | 2024-8-23 10:10 | 只看该作者
是不是你的库添加错了啊?

使用特权

评论回复
11
Betty996| | 2024-8-23 12:00 | 只看该作者
我觉得还是用MCC吧,然后芯片换成PIC32,哈哈

使用特权

评论回复
12
yiyigirl2014| | 2024-8-27 09:01 | 只看该作者
型号版本不同,你原来的库函数已经不能用了吧。

使用特权

评论回复
13
yiyigirl2014| | 2024-8-27 09:01 | 只看该作者
另外不同型号的SPI说不定相关寄存器也发生了变化,你可以考虑重写这部分代码。要不然就换成IO模拟的也可以。

使用特权

评论回复
14
powerantone| | 2024-9-8 16:53 | 只看该作者
检查库文件的兼容性和完整性

使用特权

评论回复
15
stormwind123| | 2024-9-8 16:53 | 只看该作者
更新或重新安装库文件

使用特权

评论回复
16
probedog|  楼主 | 2024-9-8 21:00 | 只看该作者
编译器设置是否包含了正确的库文件路径和依赖项。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

385

主题

2085

帖子

3

粉丝