首页 > 解决方案 > 如何解决错误:包在没有正确 RPATH 的情况下安装可执行文件

问题描述

我有这个错误,无论如何都没有直接引用,但有一个简单的解决方案。

语境:

在 Buildroot 中编译的一个自定义主机库。
一个使用 Buildroot 编译并使用这个库的自定义主机程序。

在制作过程中,Buildroot 会这样抱怨:

*** 错误:包 host-zic 在没有正确 RPATH 的情况下安装可执行文件:*** /home/aurelien/Project/[...]/BR_dir/host/bin/my_program

我该如何解决这个错误?

标签: buildroot

解决方案


Nikos C. 那里给出了答案。这是他的答案的副本/粘贴:

链接时,指定库的目录并使用 rpath:

-Wl,-rpath,/absolute/path/to/your/library -L/absolute/path/to/your/library -llibrary

-L 告诉链接器在链接时在哪里找到你的库,-rpath 告诉它在运行时在哪里搜索库。

请注意, -L 和 -rpath 需要包含 .so 文件的目录,而不是库文件本身的实际路径。

翻译成 buildroot 语言:

-Wl,-rpath,$(HOST_DIR)/lib -L$(HOST_DIR)/lib -llibrary

推荐阅读