链接时FFTW Visual Studio fortran(英特尔)未解析的符号

时间:2019-05-06 20:57:49

标签: visual-studio compiler-errors linker fortran fftw

我正在Windows机器上使用带有Intel Parallel Studio(以提供intel fortran编译器)的Visual Studio Professional 2015,并且正在使用在Linux机器上运行良好的Fortran程序测试FFTW例程。我在Windows计算机上下载并安装了FFTW(将.def转换为.lib文件),并测试了调用FFTW函数的简单C ++代码。该测试运行良好。

使用test-fortran程序进行相同操作时,出现以下错误消息:

1>------ Build started: Project: fftw_fortran_test, Configuration: Debug x64 ------
1>Linking...
1>Searching libraries
1>    Searching libfftw3-3.lib:
1>    Searching C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018\windows\compiler\lib\Intel64_win\ifmodintr.lib:
1>    Searching C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018\windows\compiler\lib\Intel64_win\ifconsol.lib:
.....................................
1>    Searching C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x64\uuid.lib:
1>Finished searching libraries
1>fftw_fortran_test.obj : error LNK2019: unresolved external symbol DFFTW_PLAN_DFT_1D referenced in function MAIN__
1>fftw_fortran_test.obj : error LNK2019: unresolved external symbol DFFTW_EXECUTE referenced in function MAIN__
1>fftw_fortran_test.obj : error LNK2019: unresolved external symbol DFFTW_DESTROY_PLAN referenced in function MAIN__
1>x64\Debug\fftw_fortran_test.exe : fatal error LNK1120: 3 unresolved externals
1>
1>fftw_fortran_test - 4 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

似乎正在搜索FFTW库。我还使用以下命令在库中查找符号,看来函数在库中

C:>dumpbin /exports libfftw3-3.lib | more
Microsoft (R) COFF/PE Dumper Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file libfftw3-3.lib

File Type: LIBRARY

     Exports

       ordinal    name

                  dfftw_cleanup_
                  dfftw_cleanup__
                  dfftw_cleanup_threads_
                  dfftw_cleanup_threads__
                  dfftw_cost_
                  dfftw_cost__
                  dfftw_destroy_plan_
                  dfftw_destroy_plan__
                  dfftw_estimate_cost_
                  dfftw_estimate_cost__
                  dfftw_execute_
                  dfftw_execute__
                  dfftw_execute_dft_
                  dfftw_execute_dft__
                  dfftw_execute_dft_c2r_
                  dfftw_execute_dft_c2r__
                  dfftw_execute_dft_r2c_
                  dfftw_execute_dft_r2c__
                  dfftw_execute_r2r_
                  dfftw_execute_r2r__
                  dfftw_execute_split_dft_
                  dfftw_execute_split_dft__
                  dfftw_execute_split_dft_c2r_
                  dfftw_execute_split_dft_c2r__
                  dfftw_execute_split_dft_r2c_
                  dfftw_execute_split_dft_r2c__
                  dfftw_export_wisdom_
                  dfftw_export_wisdom__
                  dfftw_flops_
                  dfftw_flops__
                  dfftw_forget_wisdom_
                  dfftw_forget_wisdom__
                  dfftw_import_system_wisdom_
                  dfftw_import_system_wisdom__
                  dfftw_import_wisdom_
                  dfftw_import_wisdom__
                  dfftw_init_threads_
                  dfftw_init_threads__
                  dfftw_plan_dft_
                  dfftw_plan_dft_1d_
                  dfftw_plan_dft_1d__
                  dfftw_plan_dft_2d_
                  dfftw_plan_dft_2d__
                  dfftw_plan_dft_3d_
                  dfftw_plan_dft_3d__

我无法弄清楚为什么代码无法编译并链接到FFTW库。任何帮助深表感谢。谢谢!

由于FFTW用C编写,因此我尝试在函数名称的末尾添加下划线,但这无济于事。

0 个答案:

没有答案