问题描述
我想以更一般的方式理解 -Wl,-rpath-link=<path>
以修复 problem as described here:
我尝试使用配置脚本交叉构建 wxGtk 2.8.11
(目标是旧的 i386 平台,工具链二进制文件夹被添加到 $PATH
所以 i686-pc-linux-gnu-gcc
等可以被调用):
./configure --enable-unicode --disable-shared --prefix=/usr/local/<target> --host=i686-pc-linux-gnu
我通过 rpath-link
提供了几个工具链库路径,并将 env
变量 CFLAGS
和 CXXFLAGS
与 -Wl,-rpath-link=<path>
一起用于 wxGtk configure
脚本-- 否则它会中止:
Could not run GTK+ test program,checking why...
*** The test program Failed to compile or link
我没有找到使用 rpath-link
的方法(我通过 LDFLAGS
提供相同的库路径)。
我尝试通过 LD_LIBRARY_PATH
提供相同的路径,但这会导致交叉编译器崩溃。
所以在生成的 Makefile 中使用了 rpath-link
。调用 make
时,由于 -rpath-link
选项,它会在某个时候中止。
如果我使用失败的编译命令并删除 -rpath-link
选项,它会起作用。
所以恕我直言...
-
-rpath-link
向链接器提供导致构建失败的附加信息。 - 这意味着
rpath-link
选项会覆盖某种默认路径,并且可以通过额外通过Wl,rpath-link=<path>
显式提供这些默认路径来修复交叉构建。
我理解正确吗?
如果是这样,我在哪里可以找到通过 -rpath-link
提供它们的相应默认路径?
顺便说一句:我认为整个问题的出现是因为 wxGtk
的交叉构建不仅为目标交叉构建了 wx 库,而且还构建了一些库和可执行文件,例如 wx-config
对于 host
,即那些显然不是交叉编译的
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)