wenfeizd 发表于 2025-3-6 09:16:28

添加USB库报错问题|已解决

大神们帮忙看看按官方参考程序添加USB库,添加就报127 128错误,对照了例程找不到问题在那了,有知道的帮忙看看,谢谢!


*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:usb_init?
    MODULE:.\Objects\System_init.obj (System_init)
*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:usb_init?
    MODULE:.\Objects\System_init.obj (System_init)
    ADDRESS: FF0085H
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:OutNumber
    MODULE:.\Objects\usb_cdc.obj (usb_cdc)
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:usb_OUT_done?
    MODULE:.\Objects\usb_cdc.obj (usb_cdc)
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:bUsbOutReady
    MODULE:.\Objects\usb_cdc.obj (usb_cdc)
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:printf_usb?
    MODULE:.\Objects\usb_cdc.obj (usb_cdc)
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:?printf_usb??BYTE
    MODULE:.\Objects\usb_cdc.obj (usb_cdc)
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:UsbOutBuffer
    MODULE:.\Objects\usb_cdc.obj (usb_cdc)
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:USB_SendData?
    MODULE:.\Objects\usb_cdc.obj (usb_cdc)
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:DeviceState
    MODULE:.\Objects\usb_cdc.obj (usb_cdc)
*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:usb_init?
    MODULE:.\Objects\usb_cdc.obj (usb_cdc)
Program Size: data=8.1 edata+hdata=309 xdata=3200 const=21902 code=5666
Target not created.
Build Time Elapsed:00:00:01

国芯人工智能 发表于 2025-3-6 09:18:00

您好,关于您提到的USB库报错问题,错误代码L127和L128表明在链接阶段未能解析外部符号`usb_init`。这通常是由于以下几种原因之一:

1. **库文件未正确添加**:请确保USB库文件已正确添加到项目中,并且路径设置无误。检查链接器设置中是否包含了必要的库文件。

2. **函数声明与定义不匹配**:确认`usb_init`函数的声明与定义是否一致,包括函数名、参数列表和返回类型。

3. **库未编译或未链接**:如果库是动态链接的,确保库已正确编译,并且在链接时能够找到。

4. **编译器和库的兼容性**:检查使用的编译器版本是否与USB库兼容,避免因版本不匹配导致的符号解析失败。

建议您逐步排查上述可能的原因,并参考官方文档或社区论坛获取更多帮助。希望这些建议能帮助您解决问题。

[本文内容由国芯人工智能辅助生成,仅供参考]

国芯人工智能 发表于 2025-3-6 09:23:00

根据您描述的问题,ERROR L127和L128通常是由于链接器无法找到外部符号`usb_init`的定义所致。这可能是由于以下原因之一:

1. **USB库未正确链接**:请确保在项目设置中正确添加了USB库文件(如`.lib`或`.a`),并检查库路径是否配置正确。

2. **函数声明与定义不匹配**:检查`usb_init`函数的声明与定义是否一致,包括函数签名和调用约定(如`__cdecl`或`__stdcall`)。

3. **库版本不兼容**:确认使用的USB库与编译器和目标平台兼容,避免因版本不匹配导致的符号未定义问题。

4. **库文件缺失或损坏**:重新下载或编译USB库,确保库文件完整且未被损坏。

建议您先检查上述问题,尤其是库文件的链接配置。如果问题仍未解决,可以提供更多代码或配置细节以便进一步分析。

[本文内容由国芯人工智能辅助生成,仅供参考]

国芯人工智能 发表于 2025-3-6 09:23:00

您好,从报错信息来看,问题可能出在USB库的链接或导入步骤。ERROR L127和L128表明编译器无法找到`usb_init`函数的定义,这通常是由于未正确链接USB库文件或库文件路径设置不当所致。请按照以下步骤进行排查:

1. **检查库文件路径**:确保USB库文件(如`.lib`或`.a`)已正确添加到项目的链接器路径中。
2. **确认库文件包含**:在代码中正确包含USB库的头文件(如`#include "usb.h"`),并确保头文件路径正确。
3. **检查函数声明**:确保`usb_init`函数的声明与库文件中的定义一致。
4. **重新编译库**:如果使用的是自定义库,尝试重新编译库文件。

如果问题仍未解决,建议检查项目的编译环境配置,确保所有依赖项均已正确设置。希望这些建议能帮助您解决问题。

[本文内容由国芯人工智能辅助生成,仅供参考]

国芯人工智能 发表于 2025-3-6 09:23:00

在添加USB库时遇到L127和L128错误,通常是由于链接器无法找到`usb_init`函数的定义。请按照以下步骤排查问题:

1. **确认库文件路径**:确保USB库文件(如`.lib`或`.a`)已正确添加到项目中,且路径无误。
2. **检查库版本**:确认使用的USB库版本与编译器及目标芯片兼容。
3. **函数声明与定义**:在代码中确认`usb_init`函数已正确声明,并在库中有对应的实现。
4. **链接顺序**:确保在链接阶段,USB库文件在依赖它的模块之前被链接。
5. **编译器设置**:检查编译器的库搜索路径和链接选项是否正确配置。

建议对照官方文档和例程,逐项检查上述配置,确保所有依赖项均已正确设置。若问题仍存在,可提供更多上下文信息以便进一步分析。

[本文内容由国芯人工智能辅助生成,仅供参考]

国芯人工智能 发表于 2025-3-6 09:23:00

关于您在添加USB库时遇到的L127和L128错误,这通常是由于链接器未能解析外部符号`usb_init`所致。建议您从以下几个方面进行排查:

1. **库文件路径**:确保USB库文件路径已正确添加到项目设置中,且库文件存在。
2. **库文件包含**:检查是否已正确包含USB库的头文件,并在代码中调用了`usb_init`函数。
3. **库文件兼容性**:确认所使用的USB库与当前编译器及芯片型号兼容。
4. **函数声明**:确保`usb_init`函数在库中有明确定义,且函数签名与调用处一致。

建议您仔细对照官方例程,检查上述环节,通常可以解决此类问题。如有进一步问题,欢迎提供更多细节以便深入分析。

[本文内容由国芯人工智能辅助生成,仅供参考]

DebugLab 发表于 2025-3-6 11:35:30

.lib和.h都要添加


初始化:


wenfeizd 发表于 2025-3-6 11:42:27

谢谢各位回复,已经解决了,把lib和h这二个文件移了个位置再重新添加就可以了。

ercircle 发表于 2025-3-7 21:11:42

wnagming 发表于 2025-3-7 20:59
请问我添加了USB库,实验箱通过USB接电脑,程序调用哪个函数,可以在串口助手中接收到数据呢 ...

void USB_SendData(BYTE *dat, int size);

wenfeizd 发表于 2025-3-9 10:00:20

ercircle 发表于 2025-3-7 21:11
void USB_SendData(BYTE *dat, int size);

{:4_250:}{:4_250:}{:4_250:}
页: [1]
查看完整版本: 添加USB库报错问题|已解决