Visual Studio 2022配置fftw第三方庫(kù)的詳細(xì)過(guò)程
1. 介紹
FFTW是一個(gè)可以進(jìn)行可變長(zhǎng)度一維或多維DFT的開源C程序庫(kù),是目前最快的FFT算法實(shí)現(xiàn)。本文簡(jiǎn)述了在Windows平臺(tái)上,如何在C++中調(diào)用FFTW,所使用的IDE為Visual Studio 2022。
FFTW的詳細(xì)信息可在 http://www.fftw.org 中查看
2.獲取FFTW
在 http://www.fftw.org/install/windows.html 中下載32位或64位版并解壓
3.生成lib文件
首先安裝lib.exe(VS都是在帶的,只不過(guò)我們要自己去生成) 先找到VS的lib.exe路徑: 比如我的是:C:\Program
Files\Microsoft VisualStudio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\Hostx64\x64
然后再這個(gè)文件路徑下找到這4個(gè)文件 (不同的版本的VS對(duì)應(yīng)后面的數(shù)字不一樣)
-C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE
將這4個(gè)文件復(fù)制到如上lib.exe所在的路徑下,以激活lib.exe.
測(cè)試libshi是否正常使用
以管理員的方式打開命令行
定位到lib.exe所在路徑
輸入lib
如下圖,則lib可正常使用
接著把這三個(gè)dll文件復(fù)制到lid.exe所在的目錄下
-在lid.exe所在目錄下輸入指令生成lib文件,x86和x64對(duì)應(yīng)不同的指令
x64:
lib /machine:x64 /def:libfftw3f-3.def lib /machine:x64 /def:libfftw3-3.def lib /machine:x64 /def:libfftw3l-3.def
x86
lib /def:libfftw3-3.def lib /def:libfftw3f-3.def lib /def:libfftw3l-3.def
運(yùn)行結(jié)果如圖則生成成功
生成結(jié)果
4.在VS2022中的項(xiàng)目屬性中進(jìn)行配置
主要有4個(gè)步驟:
1.添加頭文件路徑:(也就是下圖的包含目錄)
在屬性-》c/c++=》AdditionalIncludeDirectories中添加fftw-3.3.4-dll64這個(gè)文件夾,這樣程序可以使用fftw3.h
2.添加庫(kù)路徑:(也就是下圖的庫(kù)目錄)
在屬性=》Linker=》AdditionalLibraryDirectories中添加fftw-3.3.4-dll64這個(gè)文件夾,這樣程序可以使用其中的dll文件。
3.添加庫(kù)文件名:(也就是下圖的附加依賴項(xiàng))
在屬性=》Linker下的input選項(xiàng)中的AdditionalDependencies中添加
libfftw3-3.lib
libfftw3f-3.lib
libfftw3l-3.lib
在我自己的工程上加這三個(gè)地方
5.測(cè)試代碼
#include "fftw3.h" #include <stdio.h> #define N 8 int main() { int i; fftw_complex *din,*out; fftw_plan p; din = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); if((din==NULL)||(out==NULL)) { printf("Error:insufficient available memory\n"); } else { for(i=0; i<N; i++)/*測(cè)試數(shù)據(jù)*/ { din[i][0] = i+1; din[i][1] = 0; } } p = fftw_plan_dft_1d(N, din, out, FFTW_FORWARD,FFTW_ESTIMATE); fftw_execute(p); fftw_destroy_plan(p); fftw_cleanup(); for(i=0;i<N;i++) { printf("%f,%fi\n",din[i][0],din[i][1]); } printf("\n"); for(i=0;i<N;i++) { printf("%f,%fi\n",out[i][0],out[i][1]); } if(din!=NULL) fftw_free(din); if(out!=NULL) fftw_free(out); getchar(); return 0; }
參考鏈接
https://blog.csdn.net/weixin_39914245/article/details/83689817
https://www.cnblogs.com/holyprince/p/5568307.html
https://www.cnblogs.com/ybqjymy/p/14239035.html
https://blog.csdn.net/Aritro/article/details/131833601
到此這篇關(guān)于Visual Studio 2022配置fftw第三方庫(kù)的文章就介紹到這了,更多相關(guān)Visual Studio 2022配置fftw內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++中關(guān)鍵字const的詳細(xì)說(shuō)明和使用介紹(最全)
const在C/C++中是十分重要的,如果單純理解為“常量”那么你的格局就小了,今天在這里給大家介紹一下const在C++中具體詳細(xì)的用法,需要的朋友可以參考下2025-03-03Matlab實(shí)現(xiàn)二維散點(diǎn)主方向直方圖的繪制詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Matlab實(shí)現(xiàn)二維散點(diǎn)主方向直方圖的繪制,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下2022-09-09Windows配置VSCode+CMake+Ninja+Boost.Test的C++開發(fā)環(huán)境(教程詳解)
這篇文章主要介紹了Windows配置VSCode+CMake+Ninja+Boost.Test的C++開發(fā)環(huán)境,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05C語(yǔ)言新手初階教程之三子棋實(shí)現(xiàn)
相信大家在小時(shí)候都用紙和筆與小伙伴們玩過(guò)一個(gè)經(jīng)典的游戲之井字棋,即三子棋,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言新手初階教程之三子棋實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2022-01-01Visual C++ 常用數(shù)據(jù)類型轉(zhuǎn)換方法詳解
本文純粹是總結(jié)一下有關(guān)類型轉(zhuǎn)換的貼子,需要的朋友可以參考下2017-06-06C語(yǔ)言實(shí)現(xiàn)統(tǒng)計(jì)字符串單詞數(shù)
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)統(tǒng)計(jì)字符串單詞數(shù),代碼非常的簡(jiǎn)潔,有需要的小伙伴快來(lái)參考下。2015-03-03C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之單鏈表存儲(chǔ)詳解
鏈表是一種物理存儲(chǔ)結(jié)構(gòu)上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過(guò)鏈表中的指針鏈接次序?qū)崿F(xiàn)的。本文將和大家一起聊聊C語(yǔ)言中單鏈表的存儲(chǔ),感興趣的可以學(xué)習(xí)一下2022-07-07