[GRASS-user] r.terraflow has not compiled
James McManus
jmpmcmanus at yahoo.com
Sun Nov 19 14:19:55 EST 2006
Glynn Clements wrote:
> James McManus wrote:
>
>
>>>> I want to use r.terraflow. However, it is not being compiled, when I
>>>> make grass62. I am compiling with the gcc compiler, so it should
>>>> reconize the .cc endings as C++ files. Is there an additional step I
>>>> need to take to compile this program, when I make grass?
>>>>
>>> Did you run `.configure --with-cxx` ?
>>>
>> I did not do that. I made the change, and the C++ compiler shows up in
>> the configure output:
>>
>> checking whether to use C++... yes
>> checking for c++... c++
>> checking whether the C++ compiler (c++ -Wl,--export-dynamic) works... yes
>> checking whether the C++ compiler (c++ -Wl,--export-dynamic) is a
>> cross-compiler... no
>> checking whether we are using GNU C++... yes
>> checking whether c++ accepts -g... yes
>>
>> However when I try and make grass I get a parse error, when trying to
>> compile terraflow:
>>
>
>
>> ./IOStream/include/replacementHeap.h:120: error: parse error in template argument list
>> ./IOStream/include/replacementHeapBlock.h:122: error: parse error in template argument list
>>
>
> That error has recently started occurring with the latest versions of
> GCC. The issue is fixed in the current CVS version.
>
> Either update the r.terraflow code to the CVS HEAD version, or use an
> older version of GCC for compiling r.terraflow.
>
> Or just manually remove the template parameters from the destructor
> prototypes, i.e.:
>
> --- replacementHeap.h 5 Oct 2005 05:38:07 -0000 2.2
> +++ replacementHeap.h 6 Nov 2006 00:15:44 -0000 2.3
> @@ -117,7 +117,7 @@
> ReplacementHeap<T,Compare>(size_t arity, queue<char*>* runList);
>
> //delete array mergeHeap
> - ~ReplacementHeap<T,Compare>();
> + ~ReplacementHeap();
>
> //is heap empty?
> int empty() const {
> --- replacementHeapBlock.h 5 Oct 2005 05:38:07 -0000 2.2
> +++ replacementHeapBlock.h 6 Nov 2006 00:15:44 -0000 2.3
> @@ -119,7 +119,7 @@
> ReplacementHeapBlock<T,Compare>(queue <MEM_STREAM<T>*> *runList);
>
> //delete array mergeHeap
> - ~ReplacementHeapBlock<T,Compare>();
> + ~ReplacementHeapBlock();
>
> //is heap empty?
> int empty() const {
>
>
That worked. Thanks!
More information about the grass-user
mailing list