我想运行 ASITIC http://rfic.eecs.berkeley.edu/~niknejad/download.html 但据我所知,它是在旧架构和 g77 编译器上开发的,当我在 Ubuntu 上使用这个应用程序时,我必须添加国外建筑i386。
由于我一直面临的一些问题,我删除了外国架构并卸载了软件(ASITIC)。我曾计划将它安装在 Cygwin 中(在 Windows 10 中)(正如 2004 年推荐的那样(提到的网站))。我下载了文件(Intel Linux Pentium 4(2004 年 1 月 6 日更新)和通用文件(所有平台)。)然后将其解压缩到一个文件夹中,并在 Cygwin 中移动到那里提取并制作“asitic_linux”可执行文件(使用 chmod + x asitic_linux) 然后它执行给我错误
./asitic_linux: cannot execute binary file: Exec format error
我尝试使用“file asitic_linux”命令输出检查文件先决条件如下
asitic_linux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.5, stripped, too many notes (256)
我知道主要有两个问题,一个是我必须安装架构,另一个是必需的库。
知道如何安装外部架构以在 Cygwin 中运行给定的应用程序
我还发现了 Cygwin 不支持 ELF 可执行二进制文件的新信息。这就是为什么在运行 ldd asitic_linux 时会出现以下错误。
ldd: asitic_linux: Exec format error
我将尝试在 WLS(Linux 的 Windows 子系统)中运行该软件并告知更多信息。
如果您阅读文档,您会注意到原始作者仅提供 19 年的二进制版本。
由于他没有提供源代码,因此您无法将其安装在当前系统中:Cygwin 和 Linux 也没有。
所有系统都在发展,共享库发生了变化,但由于该程序从未作为源版本共享,因此无法移植。
准备/先决条件 - 您需要的是:
#Compiler for c(gcc) & c++(g++)(我们的二进制文件依赖于这些编译器的许多库)使用命令
sudo apt build-essential
(不要输入错误的拼写,例如:essentials 或 essensial,只需使用 tab 键自动完成名称)
#i386 架构
dpkg --add-architecture i386
#交叉编译功能 - 安装 gcc-multilib
sudo apt install gcc-multilib
)(最重要的)然后,
sudo apt update&&sudo apt upgrade
然后,我下载 asitic_linux (
wget http://rfic.eecs.berkeley.edu/~niknejad/Asitic/grackle/asitic_linux.gz
) 并提取它 (gzip -d asitic_linux.gz
) 它给了我二进制 asitic_linux,我使用以下命令将其转换为可执行文件chmod +x asitic_linux
然后我使用以下命令找到了依赖项的名称(它依赖的库列表)
ldd asitic_linux
从下面提供的链接下载包[选择:i386]
https://packages.debian.org/bullseye/libxext6 [libXext.so.6]
https://packages.debian.org/bullseye/libx11-6 [libX11.so.6]
https://packages.debian.org/bullseye/libxcb1 [libxcb.so.1]
https://packages.debian.org/bullseye/libxau6 [libXau.so.6]
https://packages.debian.org/bullseye/libxdmcp6 [libXdmcp.so.6]
https://packages.debian.org/bullseye/libbsd0 [libbsd.so.0]
https://packages.debian.org/bullseye/libmd0 [libmd.so.0]
http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/libg2c0_3.4.6-6ubuntu5_i386.deb [libg2c]
然后,提取
您也可以使用文件管理器本身来提取它
创建一个文件夹来收集所有提取的文件
或者,您可以从我的驱动器https://mega.nz/folder/di4C1K4I#XC74pOD51CsOOKaTGdO5rg在一个地方下载所有上述二进制文件
在同一文件夹中打开终端:鼠标右键单击>>“在终端中打开”,然后使用
pwd
知道路径的确切位置Ctrl+C
复制它以便稍后在 shell 中粘贴Ctrl+Shift+V
现在使用以下命令设置环境变量
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:exact/path/to/folder' >> ~/.bashrc
现在您可以运行
./asitic_linux
(或 sudo ./asitic_linux)