ПРИМЕЧАНИЕ -хотя заголовок вашего вопроса касается «установки старого 32 -битного программного обеспечения», похоже, нет особой причины не создавать программу как собственное 64 -битное программное обеспечение. Однако, если вам действительно нужно собрать 32-битную -версию (для тестирования производительности или для точного воспроизведения ранее опубликованных результатов ), то вот как это сделать.
Не то чтобы моя система была 64-битной -Ubuntu 18.04 с gcc/g++ 7
$ uname -a
Linux t400s 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ g++ --version
g++ (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
В данном конкретном случае программное обеспечение, которое вы пытаетесь собрать, не использует какие-либо библиотеки, кроме libm.a
,и кажется достаточным установить пакет g++-multilib
(, который установит gcc-multilib
и libc6-dev-x32
как зависимости ), а затем изменить Makefile CFLAGS
, чтобы включить-m32
Так
sudo apt install g++-multilib
Потом
$ head -3 Makefile
CFLAGS = -m32 -O3 -march=pentiumpro -mcpu=pentiumpro -funroll-loops -Winline -DNDEBUG=1
LDLIBS = -lm -static
# LDLIBS = -lm
$ make
Вы получите несколько предупреждений о том, что
g++: warning: ‘-mcpu=’ is deprecated; use ‘-mtune=’ or ‘-march=’ instead
однако программа pals
должна собрать:
$ file pals
pals: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.2.0, BuildID[sha1]=1b9e369acf2aa7c6448b4132a203b8dccde16a7d, not stripped
и запустите
$./pals
PALS v1.0
http://www.drive5.com/pals
Written by Bob Edgar and Gene Myers.
This software is donated to the public domain.
Please visit web site for requested citation.
Usage:
pals -target <fastafile> -query <fastafile>
pals -self <fastafile>
Options:
-out <outfile> (default standard output)
-fwdonly don't align reverse strand
-filterout <file> save filter hits to file
Alignment parameters can be specified in three ways:
(1) Defaults -length 400 -pctid 94
(2) Specify -length <minhitlength> -pctid <minhitid>
(3) Specify all filter and d.p. parameters:
-wordsize Filter word size
-seedlength Seed hit length
-seeddiffs Max #diffs in seed hit
-length Min length of final hit
-pctid Min %id of final hit
-tubeoffset (Optional)
For further information, please see the User Guide.
Must specify either -self or both -target and -query