0

我在 Windows 中使用 TDM gcc 64 位编译器

我的标题

#include "lapacke.h"
#include "lapacke_config.h"

我有一个像这样的简单代码

lapack_complex_double x = {8.0, 6.0};
printf( "x =  (%6.2f,%6.2f)\n", x.real, x.imag);

首先,它给了我以下错误和警告

warning: excess elements in scalar initializer
lapack_complex_double x = {8.0, 6.0};
&
error: request for member 'real' in something, not a structure or union
printf( "x =  (%6.2f,%6.2f)\n", x.real, x.imag);

我将代码更改如下

lapack_complex_double x = {8.0, 6.0};
printf( "x =  (%6.2f,%6.2f)\n", lapack_complex_double_real(x),
lapack_complex_double_imag(x) );

代码是用同样提到的警告编译的,但结果是

x =  (  8.00,  0.00)

看来警告是一个重要的错误。

4

1 回答 1

0

没错,警告是一个重要错误,它告诉您这不是使用 lapacke 库初始化复杂类型的方式。你需要使用:

x = lapack_make_complex_float(8.0, 6.0);

请参阅此问题中的示例。这应该可以为您工作。

编译 lapacke 示例代码?

于 2019-07-09T11:40:58.393 回答