Сборка FMINUIT из источника для Octave - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь установить пакет с именем fminuit http://www.fis.unipr.it/~giuseppe.allodi/Fminuit/Fminuit_building.html на машине с Ubuntu 18.04, используя Octave. Шаг установки "make -f Makefile.f2c_lnx.Octave" выдает мне следующую ошибку

WrapIO_Matlab.c: 4: 10: фатальная ошибка: mex.h: такого файла или каталога нет

Любая идея, как исправить это,

ура, Дамир

1 Ответ

0 голосов
/ 08 октября 2019

Инструкции по сборке, предоставленные FMINUIT, попросят вас вручную адаптировать Makefile к вашей установке. Я предполагаю, что вы сделали один из этих шагов неправильно. Я использую Octave 6.0.0 (текущие источники разработки) и работал нормально:

$ wget http://www.fis.unipr.it/~giuseppe.allodi/Fminuit/fminuit-src.tar.gz
$ tar xzf fminuit-src.tar.gz
$ cd fminuit-2011.05.31/fminuit/
# modify Makefile.f2c_lnx.Octave
$ make -f Makefile.f2c_lnx.Octave
$ make -f Makefile.f2c_lnx.Octave install

Сложная часть - знать, что нужно изменить в Makefile. В моем случае это были строки (вам нужно знать точную версию Octave и где вы ее установили):

 #Octave prefix directory (typically /usr or /usr/local): modify if needed
-PREFIX=/usr
+PREFIX=/usr/local
 #major version number
-OCTAVE_MAJOR=2
+OCTAVE_MAJOR=6
 #minor-release version number
-OCTAVE_MINOR=9.12
+OCTAVE_MINOR=0.0
 OBJS= mnintr_wrkrnd.o intrac.o WrapIO_Matlab.o doflush.o
 MINUIT=Minuit_.o
 INSTDIR=../bin/linux_$(ARCH)/octave$(OCTAVE_MAJOR)

Makefile fminuit будет «установлен» внутри директории с исходным кодом fminuit. Вы также можете настроить его значение INSTDIR. Вы должны настроить свой путь в Октаве, чтобы использовать его:

>> addpath('/wherever/you/build/fmunuit/fminuit-2011.05.31/bin/linux_x86_64/octave6')
>> fminuit # you probably can figure out how to call this function 
error: fminuit: Too few input arguments
...