[c++][netcdf]使用c++编译netcdf
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[c++][netcdf]使用c++编译netcdf,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3774字,纯文字阅读大概需要6分钟。
内容图文
![[c++][netcdf]使用c++编译netcdf](/upload/InfoBanner/zyjiaocheng/632/b8bb8c7588d0483b9535c5aa660b21a4.jpg)
转发:https://www.cnblogs.com/wang985850293/p/6576533.html
https://blog.csdn.net/toby54king/article/details/78711563
************************************************************************************************** 使用的netcdf的c++接口版本是netcdf-cxx4-4.2.tar.gz,下载地址:http://www.unidata.ucar.edu/downloads/netcdf/netcdf-cxx/index.jsp ************************************************************************************************** ? ? ************************************************************************************************** netcdf的C++接口是基于netcdf的C语言接口,所以在使用c++接口之前,我们需要安装netcdf的c语言版本。 使用的netcdf的C语言版本是NetCDF-4.2.1,下载地址:http://www.unidata.ucar.edu/software/netcdf/docs/winbin.html 这个版本是二进制版本,直接点击安装即可,然后会得到include,lib和bin等几个文件。 ************************************************************************************************** ? ? ? 使用方法: 1.首先解压这个压缩文件; 2.将解压后的文件中的cxx4文件夹中的netcdf文件改为netcdfcpp.h; 3.我们需要用的是cxx4文件夹中的所有的.h和.cpp文件; ************************************************************************************************** 注意:不使用hdf5的话,ncFile.cpp文件需要做改动:去掉红色前面的NC_NETCDF4 case NcFile::newFile: ??????ncCheck(nc_create(filePath.c_str(), ?NC_NOCLOBBER, &myId),__FILE__,__LINE__); ??????break; case NcFile::replace: ??????ncCheck(nc_create(filePath.c_str(),??NC_CLOBBER, &myId),__FILE__,__LINE__); ??????break; ************************************************************************************************** 4.将所有的.h和.cpp文件添加到你的工程目录下即可,分别添加到工程头文件和源文件中,在VS项目属性——VC++目录——包含目录,添加.h头文件所在的位置即可。 5.将netcdf的c语言的头文件netcdf.h,动态链接库netcdf.dll和库文件netcdf.lib添加到VS2010中。 如何添加动态链接库: a.将netcdf的c语言版本的include,lib和bin文件添加到工程目录下; b.VS中项目属性——链接器——常规——附加库目录,这里添加你的bin文件中的netcdf.dll路径; c.VS中项目属性——链接器——输入——附加依赖项,这里添加netcdf.lib库文件; d.VS中项目属性——VC++目录——包含目录,添加netcdf.h头文件的位置; e.VS中项目属性——VC++目录——库目录,添加netcdf.lib库文件的位置。 ? 测试成功与否:注意添加的头文件netcdfcpp.h 1.首先创建***.nc文件: #include <iostream> #include "netcdfcpp.h" #include <vector> using namespace std; using namespace netCDF; using namespace netCDF::exceptions; ? static const int NX = 6; static const int NY = 12; ? static const int NC_ERR = 2; ? int main() { ??int dataOut[NX][NY]; ? ??for(int i = 0; i < NX; i++) ????for(int j = 0; j < NY; j++) ??????dataOut[i][j] = i * NY + j; ? ??try ????{ ? ??????NcFile dataFile("simple_xy.nc", NcFile::replace); ? ??????NcDim xDim = dataFile.addDim("x", NX); ??????NcDim yDim = dataFile.addDim("y", NY); ? ??????vector dims; ??????dims.push_back(xDim); ??????dims.push_back(yDim); ??????NcVar data = dataFile.addVar("data", ncInt, dims); ? ??????data.putVar(dataOut); ? ??????return 0;? ????} ??catch(NcException& e) ????{e.what(); ??????return NC_ERR; ????} } ? 2.读取刚创建的***.nc文件: ? ? #include #include "netcdfcpp.h" using namespace std; using namespace netCDF; using namespace netCDF::exceptions; ? static const int NX = 6; static const int NY = 12; ? static const int NC_ERR = 2; ? int main() { ???try ???{ ???int dataIn[NX][NY];? ? ???NcFile dataFile("simple_xy.nc", NcFile::read); ? ???NcVar data=dataFile.getVar("data"); ???if(data.isNull()) return NC_ERR; ???data.getVar(dataIn); ? ???for (int i = 0; i < NX; i++) ??????for (int j = 0; j < NY; j++) if (dataIn[i][j] != i * NY + j) ??return NC_ERR; ? ???return 0; ???}catch(NcException& e) ?????{ ???????e.what(); ???????cout<<"FAILURE*************************************"<<endl; ???????return NC_ERR; ?????} } ?
内容总结
以上是互联网集市为您收集整理的[c++][netcdf]使用c++编译netcdf全部内容,希望文章能够帮你解决[c++][netcdf]使用c++编译netcdf所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。