Opened 13 years ago
Closed 13 years ago
#1655 closed defect (fixed)
problem compiling r.terraflow with g++ 4.7.0
Reported by: | hamish | Owned by: | |
---|---|---|---|
Priority: | critical | Milestone: | 6.4.3 |
Component: | Compiling | Version: | 6.4.2 |
Keywords: | r.terraflow, libiostream | Cc: | frankie |
CPU: | x86-64 | Platform: | Linux |
Description
Hi,
for 6.4.2 on Debian/sid we're getting the following fail to builds:
Errors in: /home/hamish/dev/grass/git/grass/lib/iostream /home/hamish/dev/grass/git/grass/raster/r.terraflow --
lib/iostream is fixed by backporting r50130.
r.terraflow still fails with a number of "'foo' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]":
.../raster/r.terraflow$ make mkdir -p OBJ.x86_64-pc-linux-gnu/FLOAT c++ -c -I/home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include -g -O2 -DUSER=\"hamish\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 -DPACKAGE=\""grassmods"\" -DELEV_FLOAT main.cc -o OBJ.x86_64-pc-linux-gnu/FLOAT/main.o In file included from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:30:0, from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/ami.h:41, from common.h:27, from main.cc:39: /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h: In constructor 'EMPQueueAdaptive<T, Key>::EMPQueueAdaptive(long int)': /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h:53:47: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default] c++ -c -I/home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include -g -O2 -DUSER=\"hamish\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 -DPACKAGE=\""grassmods"\" -DELEV_FLOAT common.cc -o OBJ.x86_64-pc-linux-gnu/FLOAT/common.o In file included from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:30:0, from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/ami.h:41, from common.h:27, from common.cc:35: /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h: In constructor 'EMPQueueAdaptive<T, Key>::EMPQueueAdaptive(long int)': /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h:53:47: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default] c++ -c -I/home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include -g -O2 -DUSER=\"hamish\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 -DPACKAGE=\""grassmods"\" -DELEV_FLOAT stats.cc -o OBJ.x86_64-pc-linux-gnu/FLOAT/stats.o In file included from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:30:0, from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/ami.h:41, from stats.h:29, from stats.cc:30: /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h: In constructor 'EMPQueueAdaptive<T, Key>::EMPQueueAdaptive(long int)': /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h:53:47: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default] c++ -c -I/home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include -g -O2 -DUSER=\"hamish\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 -DPACKAGE=\""grassmods"\" -DELEV_FLOAT fill.cc -o OBJ.x86_64-pc-linux-gnu/FLOAT/fill.o In file included from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:30:0, from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/ami.h:41, from fill.h:22, from fill.cc:24: /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h: In constructor 'EMPQueueAdaptive<T, Key>::EMPQueueAdaptive(long int)': /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h:53:47: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default] c++ -c -I/home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include -g -O2 -DUSER=\"hamish\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 -DPACKAGE=\""grassmods"\" -DELEV_FLOAT types.cc -o OBJ.x86_64-pc-linux-gnu/FLOAT/types.o c++ -c -I/home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include -g -O2 -DUSER=\"hamish\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 -DPACKAGE=\""grassmods"\" -DELEV_FLOAT ccforest.cc -o OBJ.x86_64-pc-linux-gnu/FLOAT/ccforest.o In file included from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:30:0, from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/ami.h:41, from ccforest.h:27, from ccforest.cc:19: /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h: In constructor 'EMPQueueAdaptive<T, Key>::EMPQueueAdaptive(long int)': /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h:53:47: warning: delegatinghamish@sid-amd64-vm:~/dev/grass/git/grass/raster/r.terraflow$ make mkdir -p OBJ.x86_64-pc-linux-gnu/FLOAT c++ -c -I/home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include -g -O2 -DUSER=\"hamish\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 -DPACKAGE=\""grassmods"\" -DELEV_FLOAT main.cc -o OBJ.x86_64-pc-linux-gnu/FLOAT/main.o In file included from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:30:0, from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/ami.h:41, from common.h:27, from main.cc:39: /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h: In constructor 'EMPQueueAdaptive<T, Key>::EMPQueueAdaptive(long int)': /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h:53:47: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default] c++ -c -I/home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include -g -O2 -DUSER=\"hamish\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 -DPACKAGE=\""grassmods"\" -DELEV_FLOAT common.cc -o OBJ.x86_64-pc-linux-gnu/FLOAT/common.o In file included from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:30:0, from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/ami.h:41, from common.h:27, from common.cc:35: /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h: In constructor 'EMPQueueAdaptive<T, Key>::EMPQueueAdaptive(long int)': /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h:53:47: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default] c++ -c -I/home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include -g -O2 -DUSER=\"hamish\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 -DPACKAGE=\""grassmods"\" -DELEV_FLOAT stats.cc -o OBJ.x86_64-pc-linux-gnu/FLOAT/stats.o In file included from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:30:0, from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/ami.h:41, from stats.h:29, from stats.cc:30: /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h: In constructor 'EMPQueueAdaptive<T, Key>::EMPQueueAdaptive(long int)': /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h:53:47: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default] c++ -c -I/home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include -g -O2 -DUSER=\"hamish\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 -DPACKAGE=\""grassmods"\" -DELEV_FLOAT fill.cc -o OBJ.x86_64-pc-linux-gnu/FLOAT/fill.o In file included from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:30:0, from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/ami.h:41, from fill.h:22, from fill.cc:24: /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h: In constructor 'EMPQueueAdaptive<T, Key>::EMPQueueAdaptive(long int)': /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h:53:47: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default] c++ -c -I/home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include -g -O2 -DUSER=\"hamish\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 -DPACKAGE=\""grassmods"\" -DELEV_FLOAT types.cc -o OBJ.x86_64-pc-linux-gnu/FLOAT/types.o c++ -c -I/home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include -g -O2 -DUSER=\"hamish\" -DNODATA_FIX -D_FILE_OFFSET_BITS=64 -DPACKAGE=\""grassmods"\" -DELEV_FLOAT ccforest.cc -o OBJ.x86_64-pc-linux-gnu/FLOAT/ccforest.o In file included from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:30:0, from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/ami.h:41, from ccforest.h:27, from ccforest.cc:19: /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h: In constructor 'EMPQueueAdaptive<T, Key>::EMPQueueAdaptive(long int)': /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive.h:53:47: warning: delegating constructors only available with -std=c++11 or -std=gnu++11 [enabled by default] In file included from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq.h:35:0, from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_impl.h:26, from /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/ami.h:39, from ccforest.h:27, from ccforest.cc:19: /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/minmaxheap.h: In instantiation of 'HeapIndex MinMaxHeap<T>::fill(T*, HeapIndex) [with T = keyvalue<int>; HeapIndex = unsigned int]': /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_impl.h:674:67: required from 'bool em_pqueue<T, Key>::min(T&) [with T = keyvalue<int>; Key = int]' /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/empq_adaptive_impl.h:237:2: required from 'bool EMPQueueAdaptive<T, Key>::min(T&) [with T = keyvalue<int>; Key = int]' ccforest.cc:164:4: required from 'void ccforest<T>::findAllRoots(int) [with T = int]' ccforest.cc:340:16: required from here /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/minmaxheap.h:747:5: error: 'insert' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/minmaxheap.h:747:5: note: declarations in dependent base 'BasicMinMaxHeap<keyvalue<int> >' are not found by unqualified lookup /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/minmaxheap.h:747:5: note: use 'this->insert' instead /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/minmaxheap.h: In instantiation of 'void UnboundedMinMaxHeap<T>::grow() [with T = keyvalue<int>]': ccforest.cc:340:38: required from here /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/minmaxheap.h:780:2: error: 'allocateHeap' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/minmaxheap.h:780:2: note: declarations in dependent base 'BasicMinMaxHeap<keyvalue<int> >' are not found by unqualified lookup /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/minmaxheap.h:780:2: note: use 'this->allocateHeap' instead /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/minmaxheap.h:786:2: error: 'freeHeap' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive] /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/minmaxheap.h:786:2: note: declarations in dependent base 'BasicMinMaxHeap<keyvalue<int> >' are not found by unqualified lookup /home/hamish/dev/grass/git/grass/dist.x86_64-pc-linux-gnu/include/grass/iostream/minmaxheap.h:786:2: note: use 'this->freeHeap' instead make: *** [OBJ.x86_64-pc-linux-gnu/FLOAT/ccforest.o] Error 1
?
- Debian's gcc 4.7.0-8
- Debian's eglibc 2.13-32
thanks, Hamish
Change History (4)
follow-up: 3 comment:1 by , 13 years ago
comment:2 by , 13 years ago
diff --git a/include/iostream/minmaxheap.h b/include/iostream/minmaxheap.h index c3d057a..4991c22 100644 --- a/include/iostream/minmaxheap.h +++ b/include/iostream/minmaxheap.h @@ -744,7 +744,7 @@ HeapIndex MinMaxHeap<T>::fill(T* arr, HeapIndex n) { //heap must be empty assert(this->size()==0); for (i = 0; !full() && i<n; i++) { - insert(arr[i]); + this->insert(arr[i]); } if (i < n) { assert(i == this->maxsize); @@ -777,13 +777,13 @@ void UnboundedMinMaxHeap<T>::grow() { if(old) { HeapIndex n = this->size(); - this->A = allocateHeap(this->maxsize); /* allocate a new array */ + this->A = this->allocateHeap(this->maxsize); /* allocate a new array */ /* copy over the old values */ assert(this->maxsize > n); for(HeapIndex i=0; i<=n; i++) { /* why extra value? -RW */ this->A[i] = old[i]; } - freeHeap(old); /* free up old storage */ + this->freeHeap(old); /* free up old storage */ } }
comment:3 by , 13 years ago
comment:4 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
as suggested by the error message, adding "this->" before 'insert', 'allocateHeap', and 'freeHeap' allowed it to compile.
interestingly it was taking the header file from dist.*/include/ not include/, so I had to edit both to get it to take.
any comments before committing the change? (I'm no C++ expert, just monkey see-monkey do in this case)
Hamish