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@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@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list