如何解决错误:包安装了没有正确 RPATH 的可执行文件

问题描述

我有这个错误,它没有被直接引用,但有一个简单的解决方案。

上下文:

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

在make期间,buildroot会这样抱怨:

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

我该如何解决这个错误

解决方法

答案由Nikos C. there 给出。这是他的答案的复制/粘贴:

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

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

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

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

用buildroot语言翻译:

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