找回密码
 立即注册
查看: 53|回复: 5

求助用AI8051U写的USB不停电下载的程序编译问题|已解决

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-25 10:11:27
已绑定手机

1

主题

3

回帖

21

积分

新手上路

积分
21
发表于 7 天前 | 显示全部楼层 |阅读模式
各位大佬,我按照视频用AI8051U写的USB不停电下载的程序,结果编译报错
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:  printf_usb?
    MODULE:  .\Objects\main.obj (main)
    ADDRESS: FF250EH*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:  printf_usb?
    MODULE:  .\Objects\main.obj (main)
    ADDRESS: FF250EH
但是我把stc32_stc8_usb.h文件写到开始了,并且把.H和.lib文件也放到了目录下面。求大佬指导下,工程文件和照片在附件中,感谢。后来我用老师案例的代码和文件也一样的问题

报错界面

报错界面

原始文件情况

原始文件情况

usb.rar

62.93 KB, 下载次数: 3

回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 7 天前 | 显示全部楼层
问题分析

根据您提供的错误信息,ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: printfusb,这表明在编译过程中,链接器无法找到printfusb函数的定义。这种错误通常是由于以下几种原因引起的:

1. 函数未定义:printfusb函数在代码中声明了,但没有在项目中提供其实现。
2. 库文件未正确链接:如果printfusb函数定义在某个库文件中,可能该库文件未正确链接到项目中。
3. 头文件未正确包含:如果printfusb函数的声明在某个头文件中,可能该头文件未正确包含在项目中。

解决步骤

1. 检查函数定义

首先,确保printfusb函数在项目中已经定义。您可以在项目中搜索printfusb,看看是否有对应的实现代码。如果没有,您需要提供该函数的实现。

2. 检查库文件链接

如果printfusb函数定义在某个库文件中,您需要确保该库文件已正确链接到项目中。具体步骤如下:
确认库文件路径:确保库文件(.lib或.a文件)已放置在项目目录中,或者其路径已正确配置在编译器的库搜索路径中。
链接库文件:在编译器的链接器设置中,确保已添加该库文件。通常可以在项目的链接器设置中添加库文件,或者在代码中使用#pragma指令链接库文件。

3. 检查头文件包含

如果printfusb函数的声明在某个头文件中,您需要确保该头文件已正确包含在项目中。具体步骤如下:
确认头文件路径:确保头文件(.h文件)已放置在项目目录中,或者其路径已正确配置在编译器的头文件搜索路径中。
包含头文件:在代码中使用#include指令包含该头文件。

4. 检查编译器设置

有时,编译器的设置可能会导致链接错误。您可以检查以下设置:
编译器版本:确保使用的编译器版本与库文件兼容。
编译选项:检查编译选项,确保没有禁用某些必要的功能或库。

示例代码

假设printfusb函数定义在usblib.c文件中,并且其声明在usblib.h文件中,您可以按照以下步骤操作:

1. 包含头文件:
  
  1. c
  2.    #include "usblib.h"
复制代码

2. 链接库文件:
   在编译器的链接器设置中添加usblib.lib文件,或者在代码中使用#pragma指令:
  
  1. c
  2.    #pragma comment(lib, "usblib.lib")
复制代码

3. 调用函数:
   在代码中调用printfusb函数:
  
  1. c
  2.    printfusb("Hello, USB!");
复制代码

总结

通过以上步骤,您应该能够解决ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: printfusb的编译错误。如果问题仍然存在,建议您检查项目的文件结构和编译器设置,确保所有必要的文件和库都已正确配置。

希望这些建议对您有所帮助,祝您顺利解决问题!

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:162
  • 最近打卡:2025-05-01 06:56:44
已绑定手机

56

主题

1319

回帖

2938

积分

荣誉版主

无情的代码机器

积分
2938
发表于 7 天前 | 显示全部楼层
编译选项不对
截图202504251118362407.jpg
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 7 天前 | 显示全部楼层
项目设置里改成 Large 模式就可以:

截图202504251127389176.jpg

如果想用 Huge 模式的话,需要使用 Huge 模式的 lib 库文件。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-25 10:11:27
已绑定手机

1

主题

3

回帖

21

积分

新手上路

积分
21
发表于 7 天前 | 显示全部楼层
乘风*** 发表于 2025-4-25 11:28
项目设置里改成 Large 模式就可以:

感谢,真是这个问题
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-25 10:11:27
已绑定手机

1

主题

3

回帖

21

积分

新手上路

积分
21
发表于 7 天前 | 显示全部楼层

感谢,真是这里出了问题
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 00:15 , Processed in 0.158279 second(s), 90 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表