【发布时间】:2021-10-15 09:05:50
【问题描述】:
我(希望)破解了 R 包 MASS,使其能够对复数数据执行稳健的线性拟合。它使用外部 c 和 FORTRAN 代码来执行一些我已经修改/替换以适应复数的线性代数。
在尝试通过R CMD SHLIB 编译 c 源文件时,我收到如下错误:
error: invalid operands to binary - (have ‘Rcomplex’ {aka ‘struct <anonymous>’} and ‘Rcomplex’ {aka ‘struct <anonymous>’})
显然,编译器不理解 Rcomplex 类型应被视为双复数类型。这并不完全出乎意料,因为Writing R Extensions 提到这可能发生在具有某些配置的某些编译器上。但是,我找不到任何有关如何更改配置以使其正常工作的信息。
我尝试过更改优化级别无济于事,包括complex.h、Complex.h、Rmath.h和R.h之外的各种头文件也不起作用。
有人知道我可能会错过什么吗?
【问题讨论】:
-
哪些表达式会产生 such errors?
-
感谢您的评论!对于每个数学运算,我都会遇到这样的错误。就像编译器不知道如何用 Rcomplex 做数学一样。
标签: r c gcc compilation complex-numbers