我使用Visual Studio 2008编写了一个使用C#的应用程序。我一直在阅读与英特尔数学库一起提供的文档...以及一些论坛......但无法获得答案。如何将MKL v9.x静态链接到托管C++ DLL中以计算FFT?
这是我在哪里:
方案: 试图静态链接MKL v9.x的到托管C++ DLL来计算FFT,使用Visual Studio 2008
连接器命令: /OUT: “C:\项目\采集工具包\干线\构建\调试\ AcquisitionToolkit.FFT.dll”/增量/ NOLOGO/LIBPATH: “C:\项目\采集工具包\干线\ LIB \的Win32”/ DLL/MANIFEST /MANIFESTFILE:"Debug\Win32\AcquisitionToolkit.FFT.dll.intermediate.manifest “/ MANIFESTUAC: ”电平= 'asInvoker' uiAccess = '假',“/ DEBUG/ASSEMBLYDEBUG/PDB:” C:\项目\徒quisition工具包\干线\构建\调试\ AcquisitionToolkit.FFT.pdb “/ DYNAMICBASE/FIXED:无/ NXCOMPAT/MACHINE:X86 /KEYFILE:"AcquisitionToolkit.snk”/ ERRORREPORT:PROMPT mkl_c.lib mkl_ia32.lib libguide40.lib KERNEL32。 LIB USER32.LIB GDI32.LIB winspool.lib comdlg32.lib advapi32.lib SHELL32.LIB ole32.lib oleaut32.lib UUID.LIB odbc32.lib odbccp32.lib
连接时获取的未解析的外部:
1 > FFT.obj:警告LNK4248:'DFTI_DFT_Desc_struct'的无法解析的类型参考标记(0100000E);图像可能无法运行
在运行时,它崩溃的调用DftiCreateDescriptor,大概是因为它不知道描述符结构的格式:
//创建FFT描述 DFTI_DESCRIPTOR_HANDLE递减; long val = DftiCreateDescriptor(& desc,DFTI_DOUBLE,DFTI_REAL,1,length);
//提交FFT描述符 DftiCommitDescriptor(降序); 我们包含mkl_dfti.h头文件。
有没有额外的头文件我们需要或额外的库,我们需要链接?
描述符结构实际定义在哪里?
我试图动态链接使用mkl_c_dll.lib,但得到了同样的无法解析的外部连接器警告。
我还需要其他一些链接器选项吗?
请如果有人能给我一些指导/帮助。我真的很感激它。
谢谢!
英特尔网页上不再提供mkl 9。我没有安装最新的10.2 eval,并没有任何问题链接它。http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-compiling-and-linking-with-microsoft-visual-cc/?wapkw=(mkl+9)您应该只是从C:\ Program Files \ Intel \ MKL \ 9.xx \ ia32 \ lib中缺少一些.lib文件。如果我是你,我会尝试链接文件夹中的所有lib文件 – 2010-12-18 23:27:53