二进制文件只有在创建符号链接后才能运行

二进制文件只有在创建符号链接后才能运行

我面临着一个相当奇怪的问题。我有一个 32 位 qmake 二进制文件,放置在非常深的路径中。因此,为了便于使用,我使用以下命令创建了一个链接

ln -s /complicated/path/to/qmake ~/qmake

我正在运行 64 位机器。所以我安装了32位库。当我运行时,二进制文件无法加载

〜/ qmake

当文件存在时,它会报告错误,指出没有这样的文件或目录。但是当我使用32位旧版本时运行顺利

/lib/ld-linux.so.2 ~/qmake

这里更有趣的是。如果我跑

/lib/ld-linux.so.2 /complicated/path/to/qmake

它显示一个错误,例如

qmake:@ɇ�:QRU�4�������̀]ZY�:H:错误18446744073564424934

但正如我已经提到的,二进制文件是使用符号链接加载的

所以我这里有两个问题。

  1. 为什么我必须在应用程序中明确提及加载程序
  2. 当符号链接运行良好时,为什么完整路径会出错?

相关内容