E.4 Проблемы при установке
В этом разделе перечислены проблемы (а также некоторые кажущиеся проблемы, которые на самом деле не означают, что что-то не так), возникающие при установке Octave.
- В некоторых системах SCO
infoне компилируется, если в config.h определеноHAVE_TERMIOS_H. Для успешной компиляции достаточно удалить это определение из info/config.h. - Если
configureнаходитdlopen,dlsym,dlcloseиdlerror, но не находит заголовочный файл dlfcn.h, необходимо найти исходный код этого заголовочного файла и установить его в каталог usr/include. Как сообщается, такая проблема возникает в Slackware 3.1. В системах Linux/GNU исходный код dlfcn.h находится в пакетеldso. - Не удается собирать файлы .oct.
Вероятно, у вас должна быть разделяемая версия
libstdc++. Для сборки разделяемых версийlibstdc++версии 2.7.2 на архитектуре HP-PA требуется патч. Его можно найти по адресу ftp://ftp.cygnus.com/pub/g++/libg++-2.7.2-hppa-gcc-fix. - В некоторых системах DEC alpha могут возникать проблемы с библиотекой
libdxml, приводящие к ошибкам с плавающей точкой и/или ошибкам сегментации в процедурах линейной алгебры, вызываемых Octave. Если вы столкнулись с такими проблемами, измените сценарий configure так, чтобыSPECIAL_MATH_LIBне было установлено в-ldxml. - В системах FreeBSD Octave может зависать при инициализации некоторых внутренних констант. Похоже, проблему можно устранить, заменив
options GPL_MATH_EMULATE
на
options MATH_EMULATE
в файлах конфигурации ядра (обычно они находятся в каталоге /sys/i386/conf). После этого потребуется пересобрать ядро, установить его и перезагрузить систему.
- Если при компиляции sighandlers.cc возникают ошибки вида
passing `void (*)()' as argument 2 of `octave_set_signal_handler(int, void (*)(int))'
или
warning: ANSI C++ prohibits conversion from `(int)' to `(...)', возможно, потребуется отредактировать некоторые файлы в подкаталоге заголовочных файлов
gcc, добавив корректные прототипы содержащихся там функций. Например, в Ultrix 4.2 необходимо добавить корректные объявления функцииsignalи макросаSIG_IGNв файл signal.h.В некоторых системах макрос
SIG_IGNопределен примерно так:#define SIG_IGN (void (*)())1
хотя на самом деле он должен быть определен примерно так:
#define SIG_IGN (void (*)(int))1
чтобы соответствовать объявлению прототипа функции
signal. Это изменение также следует внести для символовSIG_DFLиSIG_ERR. Возможно, потребуется также изменить определения в sys/signal.h.Сценарии
gccfixincludesиfixproto, вероятно, должны исправлять эти проблемы при установкеgccизмененного набора заголовочных файлов, но, насколько мне известно, этого пока не сделано.Не следует изменять файлы в /usr/include. Найти дерево каталогов заголовочных файлов
gccможно с помощью командыgcc -print-libgcc-file-name
Каталог с заголовочными файлами
gccобычно начинается в том же каталоге, где находится файл libgcc.a. - Некоторые подпрограммы Fortran могут не компилироваться со старыми версиями компилятора Sun Fortran. Если при компиляции подпрограмм Fortran в подкаталоге liboctave/external появляются ошибки вида
zgemm.f: zgemm: warning: unexpected parent of complex expression subtree zgemm.f, line 245: warning: unexpected parent of complex expression subtree warning: unexpected parent of complex expression subtree zgemm.f, line 304: warning: unexpected parent of complex expression subtree warning: unexpected parent of complex expression subtree zgemm.f, line 327: warning: unexpected parent of complex expression subtree pcc_binval: missing IR_CONV in complex op make[2]: *** [zgemm.o] Error 1, следует либо обновить компилятор, либо попробовать выполнить компиляцию без оптимизации.
- В системах NeXT, если при компиляции Array.cc и Matrix.cc возникают ошибки вида
/usr/tmp/cc007458.s:unknown:Undefined local symbol LBB7656 /usr/tmp/cc007458.s:unknown:Undefined local symbol LBE7656, попробуйте перекомпилировать эти файлы без -g.
- Некоторые пользователи сообщали, что вызовы system() и программы просмотра страниц не работают в системах SunOS. По-видимому, это происходит из-за того, что при компиляции
libg++макросG_HAVE_SYS_WAITопределен как 0 вместо 1. - В системах, где используется эталонная библиотека BLAS, следующее умножение матрицы на вектор некорректно обрабатывает значения NaN вида
NaN * 0.[NaN, 1; 0, 0] * [0; 1] ⇒ [ 1 0 ] correct result ⇒ [ NaN 0 ]
Чтобы устранить эту проблему, установите другую библиотеку BLAS, например OpenBLAS или ATLAS.
- В системах NeXT при связывании с libsys_s.a может не удаваться разрешить следующие функции
_tcgetattr _tcsetattr _tcflow
, которые входят в состав libposix.a. К сожалению, при связывании Octave с параметром -posix возникают следующие неопределенные символы.
.destructors_used .constructors_used _objc_msgSend _NXGetDefaultValue _NXRegisterDefaults .objc_class_name_NXStringTable .objc_class_name_NXBundle
Один из обходных путей — извлечь termios.o из libposix.a, поместить его в каталог src Octave и добавить в список файлов для связывания в make-файле. Будем рады предложениям о более подходящих способах решения этой проблемы!
- Если Octave немедленно аварийно завершается с исключением, связанным с плавающей точкой, вероятно, не удается инициализировать значения IEEE для бесконечности и NaN.
Если ваша система поддерживает арифметику IEEE, эту проблему можно устранить, изменив функцию
octave_ieee_initв файле lo-ieee.cc, чтобы она корректно инициализировала внутренние переменные Octave для бесконечности и NaN.Если ваша система не поддерживает арифметику IEEE, но сценарий configure Octave ошибочно определил, что поддерживает, проблему можно обойти, отредактировав файл config.h и удалив определения
HAVE_ISINF,HAVE_FINITEиHAVE_ISNAN.В любом случае сообщите об этой ошибке, поскольку, возможно, сценарий конфигурации Octave удастся изменить так, чтобы он автоматически определял правильный вариант.
- Если Octave не удается найти заголовочный файл, поскольку он установлен в каталоге, который компилятор обычно не ищет, этот каталог можно добавить в путь поиска заголовочных файлов, указав, например,
CPPFLAGS=-I/some/nonstandard/directoryв качестве аргумента дляconfigure. Аналогичным образом можно указать и другие переменные:CFLAGS,CXXFLAGS,FFLAGSиLDFLAGS. Если передать их как параметры сценария configure, они также будут записаны в файл config.status. По умолчаниюCPPFLAGSиLDFLAGSпусты,CFLAGSиCXXFLAGSустановлены в"-g -O2", аFFLAGSустановлена в"-O".
© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Installation-Problems.html