Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将mklv9.x静态链接到托管C++;DLL来计算FFT?_C#_Visual Studio 2008 - Fatal编程技术网

C# 如何将mklv9.x静态链接到托管C++;DLL来计算FFT?

C# 如何将mklv9.x静态链接到托管C++;DLL来计算FFT?,c#,visual-studio-2008,C#,Visual Studio 2008,我正在用Visual Studio 2008中的C#编写一个应用程序。我一直在阅读英特尔数学库附带的文档…和一些论坛…但没有得到答案 这就是我现在的处境: 场景: 试图使用Visual Studio 2008。静态链接MKL v9x到托管C++ DLL以计算FFT。 链接器命令: /输出:“C:\Projects\Acquisition Toolkit\Mainline\Builds\Debug\AcquisitionToolkit.FFT.dll”/INCREMENTAL/NOLOGO/LIB

我正在用Visual Studio 2008中的C#编写一个应用程序。我一直在阅读英特尔数学库附带的文档…和一些论坛…但没有得到答案

这就是我现在的处境:

场景: 试图使用Visual Studio 2008。

静态链接MKL v9x到托管C++ DLL以计算FFT。 链接器命令: /输出:“C:\Projects\Acquisition Toolkit\Mainline\Builds\Debug\AcquisitionToolkit.FFT.dll”/INCREMENTAL/NOLOGO/LIBPATH:“C:\Projects\Acquisition Toolkit\Mainline\Lib\Win32”/dll/MANIFEST/MANIFESTFILE:“Debug\Win32\AcquisitionToolkit.FFT.dll.intermediate.MANIFEST”/MANIFESTUAC:“level='asInvoker'uiAccess='false'”/Debug/ASSEMBLYDEBUG/PDB:“c:\Projects\Acquisition Toolkit\Mainline\Builds\Debug\AcquisitionToolkit.FFT.pdb”/DYNAMICBASE/FIXED:No/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'的未解析typeref标记(0100000E);映像可能无法运行

在运行时,调用DftiCreateDescriptor时它崩溃,可能是因为它不知道描述符结构的格式:

//创建FFT描述符 DFTI_描述符_句柄描述; long val=DftiCreateDescriptor(&desc,DFTI_DOUBLE,DFTI_REAL,1,length)

//提交FFT描述符 DftiCommitDescriptor(描述); 我们包括mkl_dfti.h头文件

是否有我们需要的附加头文件或附加库需要链接

描述符结构实际定义在哪里

我试图使用mkl_c_dll.lib动态链接,但得到了相同的未解析外部链接器警告

我还需要其他链接器选项吗

如果有人能给我一些指导/帮助,请告诉我。我真的很感激


谢谢

据我所知,您只能使用c++/clr进行动态链接,即/clr与/MT[d]不兼容。您需要链接到使用/MD[d]编译的库,以便它们使用相同的运行时。我不知道为什么在进行动态链接时失败,但你关于不正确描述符的理论听起来是正确的


编辑:顺便说一下,我不知道在你的情况下这是否是一个选项,但你可以使用CUDA在GPU上更快地进行FFT(CUFT)。

据我所知,你只能使用c++/clr进行动态链接,即/clr与/MT[d]不兼容。您需要链接到使用/MD[d]编译的库,以便它们使用相同的运行时。我不知道为什么在进行动态链接时失败,但你关于不正确描述符的理论听起来是正确的


编辑:顺便说一下,我不知道在您的情况下这是否是一个选项,但您可以使用CUDA在GPU上更快地进行FFT(CUFT)。

英特尔网页上不再提供mkl 9。我确实安装了最新的10.2 eval,在链接它时没有任何问题。您应该只是缺少C:\Program files\Intel\MKL\9.x.x\ia32\lib中的一些.lib文件。如果我是你,我会尝试链接folderI中的所有lib文件。我知道mkl9已经过时,但我被要求使用它。因此,我无法安装最新的10.2。英特尔网页上不再提供mkl 9。我确实安装了最新的10.2 eval,在链接它时没有任何问题。您应该只是缺少C:\Program files\Intel\MKL\9.x.x\ia32\lib中的一些.lib文件。如果我是你,我会尝试链接folderI中的所有lib文件。我知道mkl9已经过时,但我被要求使用它。所以我无法安装最新的10.2。