Milk-V Duo在执行build_all时出现错误,cannot find -ljson-c

2024-05-14 10:26:16 提问

错误提示为:

/home/milkvduo/duo/cvi_mmf_sdk/host-tools/gcc/riscv64-linux-musl-x86_64/bin/../lib/gcc/riscv64-unknown-linux-musl/10.2.0/../../../../riscv64-unknown-linux-musl/bin/ld: cannot find -ljson-c

尝试安装了json-c,但还是没解决。


Milk-V Duo在 build_all cannot find -ljson-c
我来答
浏览 813 次
已有1个回答
斑梨游客89efc
回答时间:
2024-05-14 14:02:55

根据你的描述和截图,cannot find -ljson-c 错误通常表示链接器在链接阶段找不到 json-c 库。即使你已经安装了 json-c 库,链接器可能仍然找不到它,因为它可能不在标准的库搜索路径中。你可以尝试以下步骤来解决这个问题:

确保库已安装:

确认你已经安装了 json-c 库。你可以使用以下命令进行安装:

sudo apt-get install libjson-c-dev

检查库路径:

确认 json-c 库的安装路径。通常情况下,它会安装在 /usr/lib 或 /usr/local/lib 中。你可以使用以下命令查找库文件:

find /usr -name "libjson-c.so*"

设置库路径:

如果库文件不在标准的库搜索路径中,你可以将其添加到库路径中。你可以通过设置 LD_LIBRARY_PATH 环境变量来实现:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

或者将路径添加到编译命令中:

LDFLAGS="-L/usr/local/lib" make

检查链接命令:

确认编译和链接时使用了正确的库路径。在你的 Makefile 中,确保 -L 选项指定了包含 libjson-c.so 文件的目录。例如:

LDFLAGS += -L/usr/local/lib

使用pkg-config:

一些项目使用 pkg-config 来查找库。确保 pkg-config 已经安装,并且 json-c 的 .pc 文件位于 pkg-config 的搜索路径中:

pkg-config --cflags --libs json-c

如果你已经确认库安装无误且路径正确,但仍然遇到问题,可以尝试在编译和链接命令中显式地指定库路径和库文件名。例如:

gcc -o your_program your_program.o -L/usr/local/lib -ljson-c

请按照上述步骤进行检查和调整,确保链接器能够找到 json-c 库。如果问题仍然存在,请提供更多详细信息以便进一步诊断。

点赞0

举报