Устранение неполадок netCDF на C ++ 11 - PullRequest
0 голосов
/ 29 января 2019

Так что я пытаюсь использовать netCDF вместе с C ++.Установка правильная (я знаю, так как я работаю в кластере, и я знаю, что это работает для других людей там).Но даже примеры кода с веб-страницы netCDF не работают ...

Я использую g ++ -std = c ++ 11 для компиляции.Всякий раз, когда я пытаюсь скомпилировать один из нескольких примеров кодов, которые у меня есть для использования netCDF, я получаю кучу ошибок, и я понятия не имею, что происходит ...

#include <vector>
#include <netcdf>
using namespace netCDF;
int main() {
  int nx = 6, ny = 12;
  int dataOut[nx][ny];
  for(int i = 0; i < nx; i++)
    for(int j = 0; j < ny; j++)
    dataOut[i][j] = i * ny + j;
  // Create the netCDF file.
  NcFile dataFile("1st.netCDF.nc",NcFile::replace);
  // Create the two dimensions.
  NcDim xDim = dataFile.addDim("x",nx);
  NcDim yDim = dataFile.addDim("y",ny);
  std::vector<NcDim> dims(2);
  dims[0] = xDim;
  dims[1] = yDim;
  // Create the data variable.
  NcVar data =  dataFile.addVar("data", ncInt, dims);
  // Put the data in the file.
  data.putVar(&dataOut);
  // Add an attribute.
  dataFile.putAtt("Creation date:",
  "12 Dec 2014");
  return 0;
}

Ожидаемый результат - правильная компиляциякода, и как только он запустится, чтобы получить файл .nc с записанными в него dataOut.Это мой фактический вывод, когда я пытаюсь скомпилировать:

/ tmp / ccyuchst.o: в функции main': rarray_2_netcdf.cc:(.text+0x1c6): undefined reference to netCDF :: NcFile :: NcFile (std :: __ cxx11 :: basic_string, std :: allocator>>const &, netCDF :: NcFile :: FileMode) 'rarray_2_netcdf.cc:(.text+0x234): неопределенная ссылка на netCDF::NcGroup::addDim(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long) const' rarray_2_netcdf.cc:(.text+0x2a2): undefined reference to netCDF :: NcGroup :: addDim (std :: __cxx11 :: basic_string, std :: allocator>> const &, без знака) const 'rarray_2_netcdf.cc:(.text+0x322): неопределенная ссылка на netCDF::NcDim::operator=(netCDF::NcDim const&)' rarray_2_netcdf.cc:(.text+0x34b): undefined reference to netCDF :: NcDim :: operator = (netCDF :: NcDim const &)' rarray_2_netcdf.cc:(.text+0x399):неопределенная ссылка на netCDF::ncInt' rarray_2_netcdf.cc:(.text+0x3a1): undefined reference to netCDF :: NcGroup :: addVar (std :: __cxx11 :: basic_string, std :: allocator> const &, netCDF :: NcType const &, std :: vector> const &) const 'rarray_2_netcdf.cc :(.текст + 0x3d5): неопределенная ссылка на netCDF::NcVar::putVar(void const*) const' rarray_2_netcdf.cc:(.text+0x441): undefined reference to netCDF :: NcGroup :: putAtt (std :: __cxx11 :: basic_string, std :: allocator> const &, std :: __ cxx11 :: basic_string, std :: allocator> const &) const'rarray_2_netcdf.cc:(.text+0x4d6): неопределенная ссылка на netCDF::NcFile::~NcFile()' rarray_2_netcdf.cc:(.text+0x63e): undefined reference to netCDF :: NcFile :: ~ NcFile ()' /tmp/ccyuchst.o: в функции void std::_Construct<netCDF::NcDim>(netCDF::NcDim*)': rarray_2_netcdf.cc:(.text._ZSt10_ConstructIN6netCDF5NcDimEJEEvPT_DpOT0_[_ZSt10_ConstructIN6netCDF5NcDimEJEEvPT_DpOT0_]+0x2e): undefined reference to netCDF :: NcDim :: NcDim () '/tmp/ccyuchst.o: в функции netCDF::NcGroupAtt::~NcGroupAtt()': rarray_2_netcdf.cc:(.text._ZN6netCDF10NcGroupAttD2Ev[_ZN6netCDF10NcGroupAttD5Ev]+0x20): undefined reference to netCDF :: NcAtt :: ~ NcAtt ()' collect2: ошибка: ld вернул 1 состояние выхода

...