0

I'm trying to install last TauDEM (Terrain Analysis Using Digital Elevation Models) release in GNU/Linux Debian for using with Python Processing in QGIS. Installing instructions can be watched here. After installing some dependencies (cmake, mpi-default-bin) in my system, when I ran following command:

CXX=mpicxx cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..

I got a successfully result:

-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/mpicxx
-- Check for working CXX compiler: /usr/bin/mpicxx -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found MPI_C: /usr/lib/libmpi.so;/usr/lib/i386-linux-gnu/libdl.so;/usr/lib/i386-linux-gnu/libhwloc.so  
-- Found MPI_CXX: /usr/lib/libmpi_cxx.so;/usr/lib/libmpi.so;/usr/lib/i386-linux-gnu/libdl.so;/usr/lib/i386-linux-gnu/libhwloc.so  
-- Found GDAL: /usr/lib/libgdal.so  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/zeito/TauDEM-5.3.8/src/build

However, make command produced this kind of error:

‘OFTInteger64’ was not declared in this scope

as main part into this complete context:

Scanning dependencies of target aread8
[  0%] Building CXX object CMakeFiles/aread8.dir/aread8mn.cpp.o
[  1%] Building CXX object CMakeFiles/aread8.dir/aread8.cpp.o
[  2%] Building CXX object CMakeFiles/aread8.dir/commonLib.cpp.o
/home/zeito/TauDEM-5.3.8/src/commonLib.cpp: In function ‘char* getLayername(char*)’:
/home/zeito/TauDEM-5.3.8/src/commonLib.cpp:399:10: warning: address of local variable ‘layername’ returned [-Wreturn-local-addr]
     char layername[MAXLN];
          ^
[  3%] Building CXX object CMakeFiles/aread8.dir/tiffIO.cpp.o
[  4%] Building CXX object CMakeFiles/aread8.dir/ReadOutlets.cpp.o
/home/zeito/TauDEM-5.3.8/src/ReadOutlets.cpp: In function ‘int readoutlets(char*, char*, int, int, OGRSpatialReferenceH, int*, double*&, double*&, int*&)’:
/home/zeito/TauDEM-5.3.8/src/ReadOutlets.cpp:165:24: error: ‘OFTInteger64’ was not declared in this scope
     else if (idtype == OFTInteger64) {
                        ^
/home/zeito/TauDEM-5.3.8/src/ReadOutlets.cpp:166:63: error: ‘OGR_F_GetFieldAsInteger64’ was not declared in this scope
      id[nxy] = (int)OGR_F_GetFieldAsInteger64(hFeature1, idfld);
                                                               ^
CMakeFiles/aread8.dir/build.make:146: recipe for target 'CMakeFiles/aread8.dir/ReadOutlets.cpp.o' failed
make[2]: *** [CMakeFiles/aread8.dir/ReadOutlets.cpp.o] Error 1
CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/aread8.dir/all' failed
make[1]: *** [CMakeFiles/aread8.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2

After searching for a while, I couldn't found out any adequate answer. My question is: I missed to install some important dependency for obtaining this type of error.

1
  • Seems like source missing some header file that should be included. Have you tried grepping content of the source searching for this int type? Commented Feb 22, 2017 at 10:15

2 Answers 2

0

To install Taudem in GNU/Linux Debian you can download installation script from this link:

taudem_ubuntu.tar.bz2

After unpacking it, move to that folder and run script (as superuser) with following command:

./taudem_ubuntu.sh

Successfully execution of script also requires these dependencies:

cmake, mpi-default-bin

After installation, mark check box in Processing options and then, launch Processing Toolbox (Processing menu). Taudem geoalgorithms should be available.

0

The error comes from OFTInteger64 (some sort of variable) and OGR_F_GetFieldAsInteger64 (a function) being undefined.

This is probably due to

  1. A missing #include, or (more likely)
  2. One or several preprocessor macros being set (or unset) in such a way that the needed declarations were never visible.

If this program is available pre-compiled for you Unix, you should primarily use that. If not, you should contact the authors of the software.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.