[Pianod] Make Fails on pianod2

Perette Barella perette at barella.org
Sat Dec 12 14:28:05 PST 2015


> make[3]: Entering directory '/home/pi/pianod2setup/pianod2-164/src/common'
> g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../src/include -D_GNU_SOURCE -DSYSCONFDIR='"/usr/local/etc"'   -g -O2 -std=gnu++11 -MT libutility_a-lookup.o -MD -MP -MF .deps/libutility_a-lookup.Tpo -c -o libutility_a-lookup.o `test -f 'lookup.cpp' || echo './'`lookup.cpp
> 
> In file included from lookup.cpp:16:0:
> lookup.h:154:23: error: ‘RatingLookup::base_class {aka LookupTable<rating_values_t, rating_lookup_t>}::LookupTable’ names constructor
Suggests compiler is missing constructor inheritance (C++11 feature).  -std=gnu++11 is in the compiler line, so likely older compiler.

The below failure seems due to missing constructor noted above.
> lookup.cpp:41:34: error: no matching function for call to ‘RatingLookup::RatingLookup(const RATING_LOOKUP [14])’
> lookup.cpp:41:34: note: candidate is:
> In file included from lookup.cpp:16:0:
> lookup.h:151:7: note: constexpr RatingLookup::RatingLookup(const RatingLookup&) — signature of copy constructor
> lookup.h:151:7: note:   no known conversion for argument 1 from ‘const RATING_LOOKUP [14] {aka const rating_lookup_t [14]}’ to ‘const RatingLookup&’ — force to try a type conversion because the proper constructor didn’t get inherited


    LookupTable (const LookupTableType *tab) {
        table = tab;
    }

Replace line lookup.h:151:
    using base_class::LookupTable;
with:
    RatingLookup (const RATING_LOOKUP *tab) : LookupTable (tab) { };

If that fixes it, it confirms it’s constructor inheritance.  I don’t think there’s too many instances, so if there’s some good reason for not just upgrading the compiler, and that’s the only older-compiler snag...I’m willing to code around it.  Still, I don’t want to jump through hoops in code for backward combatability.  Look into upgrading the compiler; if it’s not reasonable, let me know what other stumbling blocks this older beast poses.

Perette



--
Perette Barella • perette at barella.org • 585-286-1312
176 Middlesex Road, Rochester NY 14610

On 2015年12月12日, at 15:13, Perette Barella <perette at barella.org> wrote:

> A quick look suggests the compiler is choking on constructor inheritance; if so, the workaround is to implement constructors in the derived class; see http://stackoverflow.com/questions/9979194/what-is-constructor-inheritance
> 
> What version of g++?
> 	g++ --version
> I’m using G++ 5.2 and it’s been handling constructor inheritance.  If you’re on an older version perhaps it’s not there yet.
> 
> I’ll take a more in-depth look and confirm the quick Dx when I’m not pressed for time.  Thanks for reporting this.
> 
> Perette
> 
> --
> Perette Barella • perette at barella.org • 585-286-1312
> 176 Middlesex Road, Rochester NY 14610
> 
> On 2015年12月12日, at 14:58, Michael Himmelstein KB3NZQ <kb3nzq at gmail.com> wrote:
> 
>> trying to build pianod2 on raspberry pi and make keeps failing with this 
>> 
>> 
>> pi at Pianod2 ~/pianod2setup/pianod2-164 $ make
>> make  all-recursive
>> make[1]: Entering directory '/home/pi/pianod2setup/pianod2-164'
>> Making all in src
>> make[2]: Entering directory '/home/pi/pianod2setup/pianod2-164/src'
>> Making all in include
>> make[3]: Entering directory '/home/pi/pianod2setup/pianod2-164/src/include'
>> make[3]: Nothing to be done for 'all'.
>> make[3]: Leaving directory '/home/pi/pianod2setup/pianod2-164/src/include'
>> Making all in common
>> make[3]: Entering directory '/home/pi/pianod2setup/pianod2-164/src/common'
>> g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I../../src/include -D_GNU_SOURCE -DSYSCONFDIR='"/usr/local/etc"'   -g -O2 -std=gnu++11 -MT libutility_a-lookup.o -MD -MP -MF .deps/libutility_a-lookup.Tpo -c -o libutility_a-lookup.o `test -f 'lookup.cpp' || echo './'`lookup.cpp
>> In file included from lookup.cpp:16:0:
>> lookup.h:154:23: error: ‘RatingLookup::base_class {aka LookupTable<rating_values_t, rating_lookup_t>}::LookupTable’ names constructor
>> lookup.cpp:41:34: error: no matching function for call to ‘RatingLookup::RatingLookup(const RATING_LOOKUP [14])’
>> lookup.cpp:41:34: note: candidate is:
>> In file included from lookup.cpp:16:0:
>> lookup.h:151:7: note: constexpr RatingLookup::RatingLookup(const RatingLookup&)
>> lookup.h:151:7: note:   no known conversion for argument 1 from ‘const RATING_LOOKUP [14] {aka const rating_lookup_t [14]}’ to ‘const RatingLookup&’
>> Makefile:408: recipe for target 'libutility_a-lookup.o' failed
>> make[3]: *** [libutility_a-lookup.o] Error 1
>> make[3]: Leaving directory '/home/pi/pianod2setup/pianod2-164/src/common'
>> Makefile:1090: recipe for target 'all-recursive' failed
>> make[2]: *** [all-recursive] Error 1
>> make[2]: Leaving directory '/home/pi/pianod2setup/pianod2-164/src'
>> Makefile:666: recipe for target 'all-recursive' failed
>> make[1]: *** [all-recursive] Error 1
>> make[1]: Leaving directory '/home/pi/pianod2setup/pianod2-164'
>> Makefile:585: recipe for target 'all' failed
>> make: *** [all] Error 2
>> 
>> 
>> configure runns fine but it will not make.
>> 
>> Michael Himmelstein
>> _______________________________________________
>> Pianod mailing list
>> Pianod at lists.deviousfish.com
>> http://lists.deviousfish.com/listinfo.cgi/pianod-deviousfish.com
> 
> _______________________________________________
> Pianod mailing list
> Pianod at lists.deviousfish.com
> http://lists.deviousfish.com/listinfo.cgi/pianod-deviousfish.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.deviousfish.com/pipermail/pianod-deviousfish.com/attachments/20151212/fc3ddd9c/attachment-0001.htm>


More information about the Pianod mailing list