TI论坛
直播中

杨海清

8年用户 1804经验值
私信 关注
[问答]

DM8168 valgrind编译失败是什么原因导致的?


  • unbutu18.4 使用8168编译链交叉编译 valgrind


    命令./configure --prefix=/home/marsh/share/valgrind_tool/ --host=arm-none-linux-gnueabi CC=arm-none-linux-gnueabi-gcc

    error:
    checking for the kernel version... unsupported (4.15.0-54-generic)
    configure: error: Valgrind works on kernels 2.4, 2.6
    针对8168 host 后面的参数是正确的吗?我需要怎么编译才能在8168上使用valgrind

                                                                   
                                                                   
    unbutu18.4 使用8168编译链交叉编译 valgrind


    命令./configure --prefix=/home/marsh/share/valgrind_tool/ --host=arm-none-linux-gnueabi CC=arm-none-linux-gnueabi-gcc

    error:
    checking for the kernel version... unsupported (4.15.0-54-generic)
    configure: error: Valgrind works on kernels 2.4, 2.6
    针对8168 host 后面的参数是正确的吗?我需要怎么编译才能在8168上使用valgrind

回帖(1)

孔妞妞

2025-3-3 17:15:52
Valgrind 是一个内存调试工具,主要用于检测内存泄漏、内存越界等问题。根据您的描述,您在 Ubuntu 18.04 上使用 8168 编译链交叉编译 Valgrind 时遇到了问题。编译失败的原因是因为 Valgrind 需要在特定的内核版本上运行,而您的系统内核版本是 4.15.0-54-generic,这不符合 Valgrind 的要求。

Valgrind 支持的内核版本是 2.4 和 2.6。因此,您需要在支持这些内核版本的系统上编译和运行 Valgrind。以下是一些建议:

1. 使用支持 Valgrind 的内核版本:您可以尝试在支持 2.4 或 2.6 内核版本的系统上编译和运行 Valgrind。例如,您可以尝试在 Ubuntu 14.04 或更早的版本上进行编译。

2. 使用 Docker 容器:您可以使用 Docker 容器来运行一个支持 Valgrind 的内核版本。例如,您可以创建一个 Ubuntu 14.04 的 Docker 容器,并在该容器中编译和运行 Valgrind。

3. 使用 Valgrind 的替代方案:如果您无法在支持的内核版本上编译和运行 Valgrind,您可以考虑使用其他内存调试工具,如 AddressSanitizer(ASan)或 LeakSanitizer(LSan)。这些工具可以在较新的内核版本上运行。

总之,您需要在支持 Valgrind 的内核版本上编译和运行 Valgrind。您可以尝试使用支持这些内核版本的系统,或者使用 Docker 容器来实现这一目标。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分