Мне удалось решить проблему с помощью Владимир Ф .Ubuntu 18.04 использует PIE, независимые от позиции исполняемые файлы ( source ), и, следовательно, требует сборки библиотек с опцией -fPIC
.Библиотеки в официальном дистрибутиве IRAF , которые я использовал, не были собраны с -fPIC
, и это стало причиной моих ошибок.
К счастью, теперь можно установить библиотеки IRAF из пакета iraf-dev
в Ubuntu 18.04:
sudo apt-get install iraf-dev
В качестве альтернативы, можно скомпилировать IRAF из iraf-community / iraf * из Github.Репозиторий 1016 * с опцией -fPIC
.
Наконец, я изменил Makefile, чтобы использовать новые местоположения файлов библиотеки IRAF: /usr/lib/iraf/bin/
и /usr/lib/iraf/unix/bin/
.
FCOMP = gfortran
FFLAGS = -Wall -Wextra -fPIC -fmax-errors=1 -O3 -march=native -ffast-math -funroll-loops
.SUFFIXES: .o .f
.f.o:
$(FCOMP) -c $(FFLAGS) $<
default : daospec
daospec: daospec.o lnxsubs.o iosubs.o mathsubs.o bothsubs.o
$(FCOMP) -o daospec daospec.o lnxsubs.o iosubs.o mathsubs.o bothsubs.o -L/usr/local/lib/ -lcfitsio -lplotsub -ldevices -lutils -L/usr/lib/x86_64-linux-gnu/ -lX11 -L/usr/lib/iraf/bin/ -limfort -lsys -lvops -L/usr/lib/iraf/unix/bin/ -los -lf2c -lcurl
clean:
rm -rf daospec *.o