加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

64位 – Linux无法找到存在的文件

发布时间:2020-12-13 18:21:48 所属栏目:Linux 来源:网络整理
导读:我正在努力让Google的Dart语言启动并运行,但在运行dart2js时出错.我正在运行Arch linux,我从AUR安装了 dart-sdk.一些相关的终端输出位于下方. % dart2js main.dart /usr/local/bin/dart2js: line 7: /usr/local/bin/dart: No such file or directory% cat /u
我正在努力让Google的Dart语言启动并运行,但在运行dart2js时出错.我正在运行Arch linux,我从AUR安装了 dart-sdk.一些相关的终端输出位于下方.
% dart2js main.dart   
/usr/local/bin/dart2js: line 7: /usr/local/bin/dart: No such file or directory

% cat /usr/local/bin/dart2js
#!/bin/sh
# Copyright (c) 2012,the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

BIN_DIR=`dirname $0`
exec $BIN_DIR/dart --allow_string_plus=false $BIN_DIR/../lib/dart2js/lib/compiler/implementation/dart2js.dart "$@"

% file /usr/local/bin/dart                                                                                          
/usr/local/bin/dart: ELF 32-bit LSB executable,Intel 80386,version 1 (SYSV),dynamically linked (uses shared libs),for GNU/Linux 2.6.15,BuildID[sha1]=0x27fe166ca015c1adfeaf3a6f9c018e7d7af46d9f,stripped

% ls -alh /usr/local/bin
total 4.9M
drwxr-xr-x  2 root root 4.0K Jun 10 22:51 .
drwxr-xr-x 12 root root 4.0K Jun 10 22:51 ..
-rwxr-xr-x  1 root root 422K May 10 22:41 cargo
-rwxr-xr-x  1 root root 2.7M Jun 10 22:50 dart
-rwxr-xr-x  1 root root  360 Jun  6 16:20 dart2js
-rwxr-xr-x  1 root root  176 Jun  6 16:20 pub
-rwxr-xr-x  1 root root 166K May 10 22:41 rustc
-rwxr-xr-x  1 root root 1.6M May 10 22:41 rustdoc

% uname -rm
3.3.7-1-ARCH x86_64

可能是因为我正在运行64位操作系统而飞镖二进制文件是32位吗?

解决方法

为了执行ELF二进制文件,linux需要启动一个解码ELF的程序,加载动态库等.这个程序叫做程序解释器.程序解释器的名称和完整路径是在ELF本身中编写的

例如

$file /usr/bin/cheese 
 /usr/bin/cheese: ELF 32-bit LSB executable,Intel 80386

 $readelf -l /usr/bin/cheese  
 Elf file type is EXEC (Executable file)
 ...
 Program Headers:
 ...
 INTERP         0x000154 0x08048154 0x08048154 0x00013 0x00013 R   0x1
  [Requesting program interpreter: /lib/ld-linux.so.2]
 ...

如果未找到ELF请求的程序解释程序,BASH将收到文件未找到错误并报告“没有此类文件或目录”.

正如@poige上面所说,您需要为运行32位应用程序安装基本支持.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读