[Pianod] Make Fails on pianod2

Perette Barella perette at barella.org
Fri Dec 25 08:32:54 PST 2015


Excellent!  Thanks for the feedback.

pianod doesn’t directly use pthreads library, but libav/ffmpeg does, and ffmpeg doesn’t correctly register its needs with pkg-config… grrr.  Let me think on this, I’ll probably add a switch and check if building with ffmpeg/libav to the configure, to link pthreads.

Meanwhile… I take it the build with gcc 4.9.2 is running?  Did you have to make any code changes to get past compiler limitations?

Perette

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

On 2015年12月25日, at 0:55, Michael Himmelstein KB3NZQ <kb3nzq at gmail.com> wrote:

> fixed add -lpthread to the command and it worked 
> 
> On Fri, Dec 25, 2015 at 12:20 AM, Michael Himmelstein KB3NZQ <kb3nzq at gmail.com> wrote:
> well i'm getting somewhere still have issues. here is the output 
> 
> 
> 
> make[3]: Entering directory '/home/pi/pianod2-171/src'
> g++  -g -O2 -std=gnu++11   -o pianod user/pianod-datastore.o user/pianod-user.o user/pianod-users.o user/pianod-ownership.o user/pianod-usercommand.o songs/pianod-musictypes.o songs/pianod-encapmusic.o songs/pianod-musiclibrary.o songs/pianod-musiclibrarytypes.o songs/pianod-filter.o songs/pianod-querylist.o mediaunits/pianod-mediaunit.o mediaunits/pianod-mediasource.o mediaunits/pianod-mediaplayer.o mediaunits/pianod-threadedmediaplayer.o mediaunits/pianod-mediaparameters.o mediaunits/manager/pianod-managersource.o mediaunits/manager/pianod-mediamanager.o mediaunits/manager/pianod-managercommand.o pianod-connection.o pianod-conductor.o pianod-engine.o pianod-enginecommand.o pianod-predicate.o pianod-audiooptionsparser.o pianod-tuner.o pianod-response.o pianod-servicemanager.o pianod-pianod.o mediaunits/pandora/libpandoracommand.a mediaunits/pandora/libpandora.a mediaunits/pandora/libpiano/libpiano.a mediaunits/pandora/libwaitress/libwaitress.a   mediaunits/audio/libaudiooutput.a mediaunits/metadata/libmetadata.a libfootball/libfootball.a common/libutility.a  -ljson-c    -lao   -lavutil  -lavcodec  -lavformat  -lavfilter  -lcrypt -lz -ljson-c -lgcrypt -lgnutls -lavfilter -lavformat -lavcodec -lavutil
> /usr/bin/ld: mediaunits/pianod-threadedmediaplayer.o: undefined reference to symbol 'pthread_create@@GLIBC_2.4'
> //lib/arm-linux-gnueabihf/libpthread.so.0: error adding symbols: DSO missing from command line
> collect2: error: ld returned 1 exit status
> Makefile:634: recipe for target 'pianod' failed
> make[3]: *** [pianod] Error 1
> make[3]: Leaving directory '/home/pi/pianod2-171/src'
> Makefile:1106: recipe for target 'all-recursive' failed
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory '/home/pi/pianod2-171/src'
> Makefile:666: recipe for target 'all-recursive' failed
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory '/home/pi/pianod2-171'
> Makefile:585: recipe for target 'all' failed
> make: *** [all] Error 2
> 
> 
> like i have stated im on a raspberry pi running raspbain jessie which is debian 8
> g++ is version 4.9.2 which is the highest I can get this is the most recent image of raspbain and i updated it at first boot.
> 
> Merry Christmas 
> Michael Himmelstein
> 
> On Thu, Dec 24, 2015 at 5:26 PM, Michael Himmelstein KB3NZQ <kb3nzq at gmail.com> wrote:
> are you building on a raspberry pi?
> i'm having issues getting this to build with raspbain wheezy and jessy
> i killed one card. I can't get gcc5 installed on either version. the best i can get is gcc 4.9
> 
> 
> On Thu, Dec 17, 2015 at 1:26 PM, Michael Himmelstein KB3NZQ <kb3nzq at gmail.com> wrote:
> Sorry work has had me super busy haven't had a chance to try it will try to work on it this weekend
> 
> On Dec 14, 2015 12:54 PM, "Michael Himmelstein KB3NZQ" <kb3nzq at gmail.com> wrote:
> I'll try that tonight after work
> 
> On Dec 12, 2015 5:28 PM, "Perette Barella" <perette at barella.org> wrote:
>> 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
> 
> 
> _______________________________________________
> 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/20151225/fb88b5d2/attachment.htm>


More information about the Pianod mailing list