尽管 INCLUDE 文件正确,但 MKL DFT 未解析的外部符号
MKL DFT Unresolved External Symbol despite proper INCLUDE file
我正在尝试使用 MKL 离散傅里叶变换函数,我在 Microsoft Visual Studio 上安装了 Intel Parallel Studio XE,我已经使用这个设置很长一段时间了,现在没有问题。我经常使用 MKL VSL 库来生成并行数,它们工作得很好。我只是通过 运行 basic_dp_real_dft_3d.f90
代码来测试它,该代码在 mkl/examples/examples_core_f/
下我的 mkl 文件夹中提供。我只是将此代码复制到一个新的 Visual Studio 项目(Fortran 控制台应用程序,就像我通常那样)并在开头添加
include `mkl_dfti.f90`
我已验证此文件确实存在于 mkl/include/
文件夹中,当我编译代码时,模块文件实际上已编译并显示在我项目的 Debug/
文件夹中。但是,我收到错误
Severity Code Description
Error error LNK2019: unresolved external symbol _dfti_set_value_intval referenced in function _MAIN__
Error error LNK2019: unresolved external symbol _dfti_compute_forward_dz referenced in function _MAIN__
Error error LNK2019: unresolved external symbol _dfti_compute_backward_zd referenced in function _MAIN__
Error error LNK2019: unresolved external symbol _dfti_create_descriptor_highd referenced in function _MAIN__
Error error LNK2019: unresolved external symbol _dfti_set_value_intvec referenced in function _MAIN__
Error error LNK2019: unresolved external symbol _dfti_commit_descriptor_external referenced in function _MAIN__
所有这些函数都在mkl_dfti.f90
模块中定义。有什么我想念的吗?我已确保在项目属性中启用了 MKL 库。当我使用 VSL 库时,这通常就足够了,所以我现在不知道问题出在哪里。
问题是我在项目属性中为 Release
编译启用了 MKL 链接,但没有为 Debug
编译启用。这些可以通过左上角名为 Configuration
的下拉菜单进行更改。
我正在尝试使用 MKL 离散傅里叶变换函数,我在 Microsoft Visual Studio 上安装了 Intel Parallel Studio XE,我已经使用这个设置很长一段时间了,现在没有问题。我经常使用 MKL VSL 库来生成并行数,它们工作得很好。我只是通过 运行 basic_dp_real_dft_3d.f90
代码来测试它,该代码在 mkl/examples/examples_core_f/
下我的 mkl 文件夹中提供。我只是将此代码复制到一个新的 Visual Studio 项目(Fortran 控制台应用程序,就像我通常那样)并在开头添加
include `mkl_dfti.f90`
我已验证此文件确实存在于 mkl/include/
文件夹中,当我编译代码时,模块文件实际上已编译并显示在我项目的 Debug/
文件夹中。但是,我收到错误
Severity Code Description
Error error LNK2019: unresolved external symbol _dfti_set_value_intval referenced in function _MAIN__
Error error LNK2019: unresolved external symbol _dfti_compute_forward_dz referenced in function _MAIN__
Error error LNK2019: unresolved external symbol _dfti_compute_backward_zd referenced in function _MAIN__
Error error LNK2019: unresolved external symbol _dfti_create_descriptor_highd referenced in function _MAIN__
Error error LNK2019: unresolved external symbol _dfti_set_value_intvec referenced in function _MAIN__
Error error LNK2019: unresolved external symbol _dfti_commit_descriptor_external referenced in function _MAIN__
所有这些函数都在mkl_dfti.f90
模块中定义。有什么我想念的吗?我已确保在项目属性中启用了 MKL 库。当我使用 VSL 库时,这通常就足够了,所以我现在不知道问题出在哪里。
问题是我在项目属性中为 Release
编译启用了 MKL 链接,但没有为 Debug
编译启用。这些可以通过左上角名为 Configuration
的下拉菜单进行更改。