我使用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