Hi, list, the modified Makefile works great, thanks IOhannes and Matthias! There still seems some hickups with the object itself. Asking it to set a texbuffer and synthesize from its help-patch, it posts a longer red message to the pd console:
"an operation on the array 'array1' in the patch 'espeak-help.pd' failed since it uses garray_getfloatarray while running 64-bit (Tcl) INVALID COMMAND NAME: invalid command name "cdk Àithin "uplevel #0 $docmds"an operation on the array 'array1' in the patch 'espeak-help.pd' failed since it uses garray_getfloatarray while running 64-bit" Furthermore the object reports to synthesize at 22050Hz sampling rate, but its playback in the help patch is still at double speed, unless I divide by four instead of two next to the "resampling" comment. The associated array is also only filled up to one half when synthesizing the textbuffer, perhaps this gives a hint? Oh and in the [pd properties] subpatch both the "pitch" and the "pitch range" seem to be set with the same prefixed message? Thanks/best, P * IOhannes m zmölnig <[email protected]> [2021-03-13 23:06]: > On 3/13/21 10:45 PM, Christof Ressi wrote: > > > > > 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. > > the *actual* problem is, that one (or more) symbol(s) that are supposed to > be provided by the libespeak library cannot be resolved. > there's no error indicating that any library cannot be found at runtime. > > i just checked the project and after a successfull compilation, it seems > that the espeak.pd_linux is not linked at all against the libespeak library. > > this basically indicates a broken build system. > whenever you happen to meet the author of the makefile, please deliver a > good slapping from my side. > > > what is going wrong here, is that modern linkers try aggressively to remove > unneeded dependencies. and because libespeak is added to the linker when > nothing yet uses any of its symbols, it is discarded. > > putting the linker-flags to pull in the libraries after the object-files > that require these libraries, fixes the problem: > > > ``` > $ git diff Makefile > diff --git a/Makefile b/Makefile > index b3528b2..cd5b0ce 100644 > --- a/Makefile > +++ b/Makefile > @@ -63,7 +63,7 @@ TARGETS=$(SOURCES:.c=.$(EXTENSION)) > pd_linux: $(TARGETS) > > LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer -fPIC \ > - -Wall -W -Wshadow -Wstrict-prototypes -Werror \ > + -Wall -W -Wshadow -Wstrict-prototypes \ > -Wno-unused -Wno-parentheses -Wno-switch > > LINUXLDFLAGS = -export-dynamic -shared -lc -lm -lespeak > @@ -71,7 +71,7 @@ LINUXLDFLAGS = -export-dynamic -shared -lc -lm -lespeak > LINUXINCLUDE = -I$(PDSRCDIR) > > %.pd_linux: %.c > - $(CC) $(LINUXLDFLAGS) $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.pd_linux > $*.c > + $(CC) $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.pd_linux $*.c > $(LINUXLDFLAGS) > strip --strip-unneeded $*.pd_linux > > > ``` > > _______________________________________________ > [email protected] mailing list > UNSUBSCRIBE and account-management -> > https://lists.puredata.info/listinfo/pd-list _______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
