尽管包含了正确的INCLUDE文件,但MKL DFT无法解析的外部符号

时间:2019-07-13 00:01:14

标签: visual-studio fortran intel intel-fortran intel-mkl

我正在尝试使用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库时,这通常就足够了,因此我不知道此时的问题是什么。

1 个答案:

答案 0 :(得分:2)

问题是我在项目属性中为Release编译启用了MKL链接,但没有为Debug编译启用MKL链接。可以通过左上角名为Configuration的下拉菜单更改这些设置。