[PD] Espeak external compilation/loading errors on Linux

Christof Ressi info at christofressi.com
Sat Mar 13 22:45:26 CET 2021


> Which is what I did, described below in my last email, no?
sorry, I accientally skipped the last part of your message...

> Loading the external in Pd then throws:
> ./espeak.pd_linux: ./espeak.pd_linux: undefined symbol: espeak_SetParameter
> espeak: can't load library
So the actual problem is that Pd can't find the 'espeak' library at 
runtime. You obviously have it installed, at least gcc can find the 
header files during compilation.

Where does "libespeak.so" live?

Christof

On 13.03.2021 20:47, Peter P. wrote:
> * Christof Ressi <info at christofressi.com> [2021-03-13 15:54]:
>> Hi,
>>
>> "cast-function-type" has been introduced in GCC 8 and it affects lots of
>> existing Pd code. Usually, it is just a warning and can be ignored, but the
>> makefile for espeak sets "-Werror", which means that every warning is
>> treated as an error. The quickest fix is to either remove "-Werror" or add
>> "-Wno-cast-function-type".
> Which is what I did, described below in my last email, no?
>
> Thanks , P
>   
>> Christof
>>
>> On 13.03.2021 10:06, Peter P. wrote:
>>> Hi list,
>>>
>>> trying to compile and load the espeak external from
>>> https://github.com/kronihias/espeak
>>> on Debian/GNU Linux. Have the apt packages
>>> 	espeak libespeak-dev
>>> installed and the makefile modifiet to point to
>>> 	PDROOT=/usr/include/pd
>>>
>>> Running 'make' yields an error:
>>> cc -export-dynamic -shared  -lc -lm -lespeak -DPD -O2 -funroll-loops
>>> -fomit-frame-pointer -fPIC -Wall -W -Wshadow -Wstrict-prototypes -Werror
>>> -Wno-unused -Wno-parentheses -Wno-switch -I/usr/include/pd/src -o
>>> espeak.pd_linux espeak.c
>>> espeak.c: In function ‘espeak_setup’:
>>> espeak.c:406:6: error: cast between incompatible function types from
>>> ‘void * (*)(t_symbol *)’ {aka ‘void * (*)(struct _symbol *)’} to ‘void *
>>> (*)(void)’ [-Werror=cast-function-type]
>>>     406 |      (t_newmethod)espeak_new,  // newmethod
>>>         |      ^
>>> cc1: all warnings being treated as errors
>>> make[1]: *** [Makefile:79: espeak.pd_linux] Error 1
>>> make[1]: Leaving directory '/tmp/espeak-master'
>>> make: *** [Makefile:46: auto] Error 2
>>>
>>> which I can circumnavigate disabling the -Werror flag in the makefile.
>>> Compilation somewhat succeeds then, posting:
>>> espeak.c: In function ‘espeak_setup’:
>>> espeak.c:406:6: warning: cast between incompatible function types from
>>> ‘void * (*)(t_symbol *)’ {aka ‘void * (*)(struct _symbol *)’} to ‘void *
>>> (*)(void)’ [-Wcast-function-type]
>>>     406 |      (t_newmethod)espeak_new,  // newmethod
>>>         |      ^
>>>
>>> Loading the external in Pd then throws:
>>> ./espeak.pd_linux: ./espeak.pd_linux: undefined symbol: espeak_SetParameter
>>> espeak: can't load library
>>>
>>> Can anyone point me into a good direction what to try next here?
>>> Anyone having had success on OS X with this external so far?
>>>
>>> appreciated,
>>> as always,
>>> yours,
>>> P
>>>
>>>
>>>
>>> _______________________________________________
>>> Pd-list at lists.iem.at mailing list
>>> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
>> _______________________________________________
>> Pd-list at lists.iem.at mailing list
>> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
>
>
>
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list





More information about the Pd-list mailing list