本节包含Octave安装过程中可能出现的问题列表(以及一些明显的问题,这些问题并不意味着有什么问题)。
info
如果HAVE_TERMIOS_H
在中定义config.h。模拟从中删除定义info/config.h应该允许它进行编译。configure
查找dlopen
, dlsym
, dlclose
和dlerror
,但不是头文件dlfcn.h,您需要找到头文件的源文件并将其安装在目录中usr/include。据报道,这是Slackware 3.1的一个问题。对于Linux/NGNU系统dlfcn.h在中ldso
软件包你可能应该有一个共享版本的libstdc++
。构建的2.7.2版本的共享版本所需的补丁libstdc++
基于HP-PA架构。你可以在找到补丁ftp://ftp.cygnus.com/pub/g++/libg++-2.7.2-hppa-gcc-fix.
libdxml
库,导致Octave调用的线性代数子程序中的浮点错误和/或分段错误。如果遇到此类问题,则应修改configure脚本,以便SPECIAL_MATH_LIB
未设置为-ldxml
.
options GPL_MATH_EMULATE
而不是
options MATH_EMULATE
在内核配置文件中(通常在目录中找到/sys/i386/conf). 进行此更改后,您需要重新构建内核,安装它,然后重新启动。
passing `void (*)()' as argument 2 of `octave_set_signal_handler(int, void (*)(int))'
或
warning: ANSI C++ prohibits conversion from `(int)' to `(...)'
编译时sighandlers.cc,您可能需要在中编辑一些文件gcc
include子目录为那里的函数添加适当的原型。例如,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也
这个gcc
fixincludes
和fixproto
当gcc
安装其修改后的一组头文件,但我认为这还并没有完成。
您不应该更改中的文件/usr/include。您可以找到gcc
通过运行命令包括目录树
gcc -print-libgcc-file-name
的目录gcc
include文件通常在包含该文件的同一目录中开始libgcc.a.
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
在中编译Fortran子程序时liboctave/external子目录中,您应该升级编译器,或者在关闭优化的情况下尝试编译。
/usr/tmp/cc007458.s:unknown:Undefined local symbol LBB7656 /usr/tmp/cc007458.s:unknown:Undefined local symbol LBE7656
编译时Array.cc和Matrix.cc,尝试重新编译这些文件,而不-g.
G_HAVE_SYS_WAIT
编译时定义为0而不是1libg++
.
NaN * 0
.
[NaN, 1; 0, 0] * [0; 1] ⇒ [ 1 0 ] correct result ⇒ [ NaN 0 ]
安装不同的爆破库,如OpenBLAS或ATLAS,以更正此问题。
_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,放在Octave的src目录,并将其添加到makefile中要链接在一起的文件列表中。欢迎提出解决此问题的建议!
如果你的系统确实支持IEEE算法,你应该能够通过修改函数来解决这个问题octave_ieee_init
在文件中lo-ieee.cc以正确初始化Octave的内部无穷大和NaN变量。
如果您的系统不支持IEEE算法,但Octave的配置脚本错误地确定它支持,则可以通过编辑文件来解决此问题config.h不定义HAVE_ISINF
, HAVE_FINITE
和HAVE_ISNAN
.
在任何情况下,请将其返回为错误,因为可能会修改Octave的配置脚本来自动确定要做的正确操作。
CPPFLAGS=-I/some/nonstandard/directory
作为的参数configure
。可以通过这种方式指定的其他变量有CFLAGS
, CXXFLAGS
, FFLAGS
和LDFLAGS
。将它们作为参数传递给配置脚本也会将它们记录在config.status文件默认情况下,CPPFLAGS
和LDFLAGS
是空的,CFLAGS
和CXXFLAGS
设置为"-g -O2"
和FFLAGS
设置为"-O"
.
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2