我正在学习如何从fortran调用fftw。我的测试程序如下:
gfortran -I/usr/include -o example1 example1.f90 or
gfortran -I/usr/include -L/usr/lib/x86_64-linux-gnu -o example1 example1.f90
第一个混乱是因为fftw网站建议所有fftw调用都应以字母d开头,如'dfftw_plan_dft_1d'。但是fftw3.f03(位于/ usr / include)中的函数/子例程都没有d前缀。当我尝试使用
编译/链接时example1.f90:(.text+0xf3): undefined reference to `fftw_plan_dft_1d'
example1.f90:(.text+0x114): undefined reference to `fftw_execute_dft'
example1.f90:(.text+0x1cc): undefined reference to `fftw_destroy_plan'
链接器抛出错误:
interface IDevice
{
void Connect(DeviceAdderss address);
void Disconnect();
}
public abstract DeviceBase : IDevice
{
// IDevice implementation plus other stuff
}
public DeviceA : DeviceBase
{
// Some device A specific stuff
}
public DeviceB : DeviceBase
{
// Some device B specific stuff
}
即使这些库位于/ usr / lib / x86_64-linux-gnu中。另外一点是我想学习如何在不使用(kind = 8)修饰符的情况下声明双精度复杂变量。我的编译器(gfortran)不知道double complex。