erJSu 2023-12-08 11:01 采纳率: 80%
浏览 11
已结题

ZED双链表make编译报错解决思路问题


tests/list_tests.c:108:1: note: in expansion of macro ‘RUN_TESTS’
  108 | RUN_TESTS(all_tests);
      | ^~~~~~~~~
/usr/bin/ld: /tmp/cczD3Vpr.o: in function `test_create':
/home/suyuzhu/lcthw/liblcthw/tests/list_tests.c:12: undefined reference to `List_create'
/usr/bin/ld: /tmp/cczD3Vpr.o: in function `test_shift':
/home/suyuzhu/lcthw/liblcthw/tests/list_tests.c:84: undefined reference to `List_shift'
/usr/bin/ld: /home/suyuzhu/lcthw/liblcthw/tests/list_tests.c:87: undefined reference to `List_shift'
collect2: error: ld returned 1 exit status
make: *** [<内置>:tests/list_tests] 错误 1

问题表现如上,最终发现都是对应的c文件函数出现错别字。
明明跟list.c没关系, 为什么错误都是发生在list.c中呢?
list_test.c包含的头文件如下:

#include "minunit.h"
#include "lcthw/list.h"
#include <assert.h>


```c


```

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-08 12:22
    关注

    【以下回答由 GPT 生成】

    这是一个链接问题,可能是在链接时没有正确引用liblcthw库中的list.c文件,导致找不到函数的定义。要解决这个问题,可以按照以下步骤进行排查和修复:

    1. 确保在Makefile中正确地配置了链接liblcthw库。找到Makefile中的链接部分,确认是否包含了liblcthw库的路径和文件名,比如-L/path/to/liblcthw -llcthw

    2. 确保在list_tests.c文件中正确引入了list.h头文件。检查list_tests.c文件的开头部分,确认是否包含了#include "lcthw/list.h"

    3. 确保在list_tests.c文件中的测试函数使用了正确的函数名。根据报错信息,检查list_tests.c文件中的测试函数,确保调用的函数名与liblcthw库中的函数名一致。比如,检查test_creat和test_shift函数中是否正确调用了List_create和List_shift函数。

    4. 确保在编译时正确地链接了liblcthw库。在编译时,确保使用了正确的链接参数,包括库路径和库名称。可以在编译命令中添加-L/path/to/liblcthw -llcthw参数来确保正确链接liblcthw库。

    综上所述,要解决该问题,需要逐步检查Makefile配置、头文件引入、函数调用和链接参数,确保正确地引用了liblcthw库中的list.c文件,并正确地链接了liblcthw库。如果以上步骤都正确并且问题仍然存在,可能需要进一步调试和排查相关代码和配置文件。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月24日
  • 已采纳回答 4月16日
  • 创建了问题 12月8日

悬赏问题

  • ¥50 微信小程序 成功包奶茶啊
  • ¥15 计算机博弈的六子棋代码
  • ¥15 在Fetch API中传送的参数为何不起作用?
  • ¥15 问题遇到的现象和发生背景 360导航页面千次ip是20元,但是我们是刷量的 超过100ip就不算量了,假量超过100就不算了 这是什么逻辑呢 有没有人能懂的 1000元红包感谢费
  • ¥30 计算机硬件实验报告寻代
  • ¥15 51单片机写代码,要求是图片上的要求,请大家积极参与,设计一个时钟,时间从12:00开始计时,液晶屏第一行显示time,第二行显示时间
  • ¥15 用C语言判断命题逻辑关系
  • ¥15 原子操作+O3编译,程序挂住
  • ¥15 使用STM32F103C6微控制器设计两个从0到F计数的一位数计数器(数字),同时,有一个控制按钮,可以选择哪个计数器工作:需要两个七段显示器和一个按钮。
  • ¥15 在yolo1到yolo11网络模型中,具体有哪些模型可以用作图像分类?