在Visual Studio中配置C++最新版netCDF庫(kù)的方法
netCDF(Network Common Data Form)是一種用于存儲(chǔ)、訪問(wèn)和共享科學(xué)數(shù)據(jù)的文件格式和庫(kù),其提供了一種靈活的方式來(lái)組織、描述和存儲(chǔ)多維數(shù)據(jù),適用于各種科學(xué)領(lǐng)域,包括氣象學(xué)、地球科學(xué)、大氣科學(xué)、海洋學(xué)等。而netCDF庫(kù)則提供了用于讀取和寫(xiě)入 netCDF數(shù)據(jù)的接口和函數(shù)——其支持多種編程語(yǔ)言,包括C、C++、Fortran、Python等。在本文中,我們就介紹一下這個(gè)netCDF庫(kù)在C++ 語(yǔ)言環(huán)境下的編譯、配置方法。
首先,我們進(jìn)入netCDF庫(kù)的官方下載網(wǎng)站(https://downloads.unidata.ucar.edu/netcdf/)。如下圖所示,首先我們先下載NetCDF-C這個(gè)庫(kù)——找到其中netCDF-4
庫(kù)(不帶有DAP
字樣的那個(gè)),選擇32-bit
還是64-bit
(一般就是64-bit
),然后點(diǎn)擊即可下載。
接下來(lái),我們?cè)傧螺dnetCDF-C++ 這個(gè)庫(kù)。如下圖所示,找到最新版的、后綴名為.zip
的那個(gè)文件即可。
上述文件下載后,會(huì)分別得到1
個(gè).exe
可執(zhí)行文件(前述NetCDF-C庫(kù)),以及1
個(gè).zip
壓縮包(前述netCDF-C++ 庫(kù));首先,將前述netCDF-C++ 庫(kù)的壓縮包解壓縮,如下圖所示。
其次,將前述netCDF-C++ 庫(kù)的可執(zhí)行文件打開(kāi),如下所示。
打開(kāi)后,即可開(kāi)始安裝;安裝過(guò)程中,主要注意以下幾個(gè)界面的設(shè)置即可——首先,如下圖所示,選擇第二項(xiàng),即為所有用戶添加系統(tǒng)變量。
接下來(lái),選擇要安裝的文件夾路徑;如下圖所示。這里建議和前面解壓縮文件得到的文件夾放在同一個(gè)路徑下。
隨后,即可完成安裝。完成后,我們打開(kāi)前述netCDF-C++ 庫(kù)的解壓縮文件夾,找到其中的cxx4
文件夾,并找到netcdf
文件,如下圖所示。
將上述這個(gè)netcdf
文件重命名,修改為netcdfcpp.h
,如下圖所示。
接下來(lái),進(jìn)入需要調(diào)用netCDF庫(kù)的C++ 項(xiàng)目,在其名稱上右鍵,并選擇“屬性”,如下圖所示。
隨后,在屬性頁(yè)中的“VC++ 目錄”一欄中,分別配置“包含目錄”和“庫(kù)目錄”。
其中,“包含目錄”的配置如下圖所示,即分別添加了解壓縮文件夾中的cxx4
文件夾,以及可執(zhí)行文件安裝路徑中的include
文件夾。
而“庫(kù)目錄”的配置如下圖所示,即添加了可執(zhí)行文件安裝路徑中的lib
文件夾。
接下來(lái),打開(kāi)“鏈接器”→“常規(guī)”一欄中的“附加庫(kù)目錄”,如下圖所示。
在其中,將可執(zhí)行文件安裝路徑中的bin
文件夾放入,如下圖所示。
隨后,打開(kāi)“鏈接器”→“輸入”一欄中的“附加依賴項(xiàng)”,如下圖所示。
在其中,將可執(zhí)行文件安裝路徑中lib
文件夾下的netcdf.lib
文件放入,如下圖所示。
接下來(lái),大家可以試著先運(yùn)行一下項(xiàng)目;如果項(xiàng)目里有關(guān)netCDF庫(kù)的代碼可以成功運(yùn)行(如果大家此時(shí)還沒(méi)有寫(xiě)完用到netCDF庫(kù)的代碼,那么可以用本文末尾給出的簡(jiǎn)單的測(cè)試代碼),那么就大功告成了。
但是,如果出現(xiàn)了含有“無(wú)法解析的外部符號(hào)”字樣的錯(cuò)誤提示(我這里當(dāng)時(shí)忘記截圖了),那么就需要繼續(xù)看本文。
首先,我們?cè)陧?xiàng)目的“頭文件”上方右鍵,選擇“添加”→“現(xiàn)有項(xiàng)”,如下圖所示。
隨后,打開(kāi)解壓縮文件夾中的cxx4
文件夾,將其中所有不是以test_
開(kāi)頭的、且是以.h
結(jié)尾的頭文件選中(可以在右側(cè)的搜索欄中搜索.h
字樣,然后批量選擇),添加到項(xiàng)目的頭文件中;如下圖所示。
添加之后,項(xiàng)目的頭文件就是如下圖所示的樣子;其中,除了第一個(gè)文件,其他紫色框內(nèi)所有文件,都是我們剛剛添加進(jìn)去的。
接下來(lái),對(duì)項(xiàng)目的源文件執(zhí)行類似的操作——將解壓縮文件夾中的cxx4
文件夾內(nèi),所有不是以test_
開(kāi)頭的、且是以.cpp
結(jié)尾的代碼文件放入,得到的結(jié)果如下圖所示。
接下來(lái),執(zhí)行大家的代碼。如果不報(bào)錯(cuò)、可以執(zhí)行,那么大功告成;如果出現(xiàn)如下圖所示的情況,提示This function or variable may be unsafe
類似的報(bào)錯(cuò),那么可以看到,這個(gè)報(bào)錯(cuò)給出了一個(gè)字段——在我這里就是_CRT_SECURE_NO_WARNINGS
這個(gè)字段。
首先,復(fù)制上面這個(gè)字段,隨后打開(kāi)項(xiàng)目的屬性,選擇“C/C++”一欄中的“預(yù)處理器”,然后將這個(gè)字段復(fù)制到“預(yù)處理器定義”中即可。
接下來(lái),執(zhí)行大家的代碼。如果不報(bào)錯(cuò)、可以執(zhí)行,那么大功告成;如果運(yùn)行代碼后,彈出來(lái)一個(gè)小的提示窗口,說(shuō)找不到某個(gè).dll
文件,那么大家到可執(zhí)行文件安裝路徑中的bin
文件夾,將這個(gè)里面所有.dll
結(jié)尾的文件復(fù)制,然后粘貼到Visual Studio項(xiàng)目文件夾下即可。
其中,粘貼完畢上述所有dll
文件后,如下圖所示。其中,這個(gè)Rec_CPP
文件夾就是我這里的項(xiàng)目文件夾。
這個(gè)時(shí)候,再運(yùn)行代碼,就沒(méi)問(wèn)題了。
最后,給出一個(gè)測(cè)試C++ 調(diào)用netCDF庫(kù)的代碼;其中,path
就是大家存放.nc
數(shù)據(jù)的路徑(文件夾之間的分隔符需要用正斜杠/
來(lái)表示),需要自行定義一下。
#include <iostream> #include "netcdfcpp.h" using namespace netCDF; int main() { string path = "path/to/nc_file"; NcFile file(path, NcFile::read); }
這個(gè)代碼什么都沒(méi)干,就是讀取了一下.nc
數(shù)據(jù);所以只要代碼不報(bào)錯(cuò),就說(shuō)明netCDF庫(kù)配置成功。
至此,大功告成。
以上就是在Visual Studio中配置C++最新版netCDF庫(kù)的方法的詳細(xì)內(nèi)容,更多關(guān)于Visual Studio配置netCDF庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
VC MFC非模態(tài)對(duì)話框的實(shí)現(xiàn)方法
這篇文章主要介紹了VC MFC非模態(tài)對(duì)話框的實(shí)現(xiàn)方法,有助于讀者加深對(duì)于模態(tài)對(duì)話框與非模態(tài)對(duì)話框的理解與運(yùn)用,需要的朋友可以參考下2014-07-07C C++ LeetCode題解在二叉樹(shù)中增加一行示例詳解
這篇文章主要為大家介紹了C C++ LeetCode題解在二叉樹(shù)中增加一行示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10詳解C語(yǔ)言中的動(dòng)態(tài)內(nèi)存管理
對(duì)于數(shù)據(jù)的存儲(chǔ)我們可以靜態(tài)存儲(chǔ),也可以動(dòng)態(tài)存儲(chǔ),兩種方式都有自己特有的好處,這篇文章教我們?nèi)绾瓦M(jìn)行動(dòng)態(tài)的數(shù)據(jù)存儲(chǔ)?。。?!感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12C++ 實(shí)現(xiàn)靜態(tài)單鏈表的實(shí)例
這篇文章主要介紹了C++ 實(shí)現(xiàn)靜態(tài)單鏈表的實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06用C語(yǔ)言實(shí)現(xiàn)圣誕樹(shù)(簡(jiǎn)易版+進(jìn)階版)
大家好,本篇文章主要講的是用C語(yǔ)言實(shí)現(xiàn)圣誕樹(shù)(簡(jiǎn)易版+進(jìn)階版),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12C語(yǔ)言遞歸實(shí)現(xiàn)線索二叉樹(shù)
這篇文章主要介紹了C語(yǔ)言遞歸實(shí)現(xiàn)線索二叉樹(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10C++實(shí)現(xiàn)將一個(gè)字符串中的字符替換成另一個(gè)字符串的方法
這篇文章主要介紹了C++實(shí)現(xiàn)將一個(gè)字符串中的字符替換成另一個(gè)字符串的方法,需要考慮的情況比較全面,有不錯(cuò)的借鑒價(jià)值,需要的朋友可以參考下2014-09-09C語(yǔ)言利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言利用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01