Устранение неполадок netCDF на C++11
Поэтому я пытаюсь использовать 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&, unsigned long) 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:(.text+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: error: ld вернул 1 состояние выхода