我正在尝试使用MKL离散傅立叶变换功能,我已将Intel Parallel Studio XE与Microsoft Visual Studio一起安装,我使用该设置已有相当长的一段时间了,没有出现任何问题。我经常使用MKL VSL库生成并行数,并且它们工作得很好。我只是通过运行ilmAccountIdentifier
下我的mkl文件夹中提供的basic_dp_real_dft_3d.f90
代码来对其进行测试。我已经将这段代码简单地复制到了一个新的Visual Studio项目(就像我通常那样的Fortran控制台应用程序)中,并在开头添加了
mkl/examples/examples_core_f/
我已验证此文件确实存在于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库。当我使用VSL库时,这通常就足够了,因此我不知道此时的问题是什么。
答案 0 :(得分:2)
问题是我在项目属性中为Release
编译启用了MKL链接,但没有为Debug
编译启用MKL链接。可以通过左上角名为Configuration
的下拉菜单更改这些设置。