[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: IMSL Fortran Numeric Library under Debian.



On Thu, 7 Feb 2013, Dmitrii Kashin wrote:

Я, кажется, понял, в чем дело. Все эти функции я обнаружил в
соответствующий файлах программы, которую пытаюсь скомпилировать. =)

Я наивно пытался подать на вход только один файл, а их там без малого
сотня. Надо, стало быть, из каждого объектник сделать, а потом
слинковать. Ну или подключить их директивой include в главном файле.


 С include это не самая удачная идея.
 Лучше написать Makefile, что бы он эту программу вам собирал.
 Если никогда с make не работали, посмотрите
 http://www.osp.ru/os/1993/03/178469/
 как раз для начинающих. Полная документация по make в пакете make-doc.
 В приложении болванка под Makefile, что бы легче было
 стартовать. Впишите список своих файлов. FFLAGS - то что
 ваши скрипты определяют как FFLAGS.
 Вместо EXTLIBS поставьте LINK_FNL_STATIC.
 (Я ориентируюсь на вашу строку $FC $FFLAGS solver3.for $LINK_FNL_STATIC )

 p.s. Из любопытства спрашиваю. Фортрановская библиотека - это
 существенно? Нельзя, скажем, GSL приспособить? Или там просто
 нет того, что требуется?

Существенно то, что программа написана не мной, а также то, что ни с
IMSL, ни с GSL я раньше не работал. Все, что я на данный момент пытаюсь
сделать - это заставить работать то, что уже есть, и переписывать
программу только ради свободной библиотеки я бы не хотел, ибо она
огромна и плохо комментирована.


 Ситуация понятная. Заставить чужую программу работать - задача
 благородная, но неблагодарная. Действительно, тогда лучше
 пользоваться тем что есть.

 Успехов.
 Ю.
PROGRAM := galuga.exe

# --------------------------------------------------------------------
# compiler options
#
FC      := ifort
FFLAGS  := -g
# --------------------------------------------------------------------
# links options and libraries
#
LINK    := ifort
EXTLIBS := $(shell cernlib packlib)

# --------------------------------------------------------------------
# list of files
#
SRCS    := ranlux.f vegas.f galuga2.f
MAIN    := demo_my.f
OBJS    := $(SRCS:.f=.o)
OBJS    += $(MAIN:.f=.o)

# --------------------------------------------------------------------

all : $(PROGRAM) 

$(PROGRAM) : $(OBJS)
	$(LINK) -o $(PROGRAM) $(OBJS) $(EXTLIBS)
	@echo "done"

clean:
	@rm -f *.o $(PROGRAM) core *~

Reply to: