Hi all,
I've taken a quick stab at trying to port John Gibson's spectdelay~ external from Max to Pd and got stuck at the following error:
load_object: Symbol "spectdelay_tilde_setup" not found
I have spectdelay_tilde_setup in the code, it is format-wise (TTBOMYK) the same as other signal-based externals. At any rate, I am stuck and unsure how to proceed. Please advise.
build script: gcc -DPD -g -I/usr/local/include/pdl2ork -I../Spectacle -o spectdelay~.o -c spectdelay~.cpp gcc -o spectdelay~.pd_linux spectdelay~.o -Wall -W -Wstrict-prototypes -Wno-unused -Wno-parentheses -Wno-switch -O6 -funroll-loops -fomit-frame-pointer -fno-strict-aliasing -fPIC -DUNIX -Wl,--export-dynamic-shared ../Spectacle/Spectacle.o ../Spectacle/SpectacleBase.o ../genlib/Odelay.o ../genlib/Obucket.o ../genlib/FFTReal.o ../genlib/Offt.o
source file is attached. Bunch of .o files are independent/shared .o files that have been built as follows: gcc -c -o Ooscil.o Ooscil.cpp
Any ideas as to why is this happening?
TIA
I don't know about C++, but in C that sounds like the setup function
is declared as 'static'.
.hc
On Dec 26, 2010, at 8:35 PM, Ivica Ico Bukvic wrote:
Hi all,
I've taken a quick stab at trying to port John Gibson's spectdelay~ external from Max to Pd and got stuck at the following error:
load_object: Symbol "spectdelay_tilde_setup" not found
I have spectdelay_tilde_setup in the code, it is format-wise (TTBOMYK) the same as other signal-based externals. At any rate, I am stuck and unsure how to proceed. Please advise.
build script: gcc -DPD -g -I/usr/local/include/pdl2ork -I../Spectacle -o
spectdelay~.o -c spectdelay~.cpp gcc -o spectdelay~.pd_linux spectdelay~.o -Wall -W -Wstrict-prototypes -Wno-unused -Wno-parentheses -Wno-switch -O6 -funroll-loops -fomit-frame-pointer -fno-strict-aliasing -fPIC -DUNIX -Wl,--export-dynamic-shared ../Spectacle/Spectacle.o ../Spectacle/ SpectacleBase.o ../genlib/Odelay.o ../genlib/Obucket.o ../genlib/ FFTReal.o ../genlib/Offt.osource file is attached. Bunch of .o files are independent/shared .o files that have been built as follows: gcc -c -o Ooscil.o Ooscil.cpp
Any ideas as to why is this happening?
TIA
<spectdelay~.cpp>_______________________________________________ Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
As we enjoy great advantages from inventions of others, we should be
glad of an opportunity to serve others by any invention of ours; and
this we should do freely and generously. - Benjamin Franklin
it's declared as void, not static. extension is inherited from the original code but is not cpp code, afaik.
Ico
On Sun, 2010-12-26 at 20:41 -0800, Hans-Christoph Steiner wrote:
I don't know about C++, but in C that sounds like the setup function
is declared as 'static'..hc
On Dec 26, 2010, at 8:35 PM, Ivica Ico Bukvic wrote:
Hi all,
I've taken a quick stab at trying to port John Gibson's spectdelay~ external from Max to Pd and got stuck at the following error:
load_object: Symbol "spectdelay_tilde_setup" not found
I have spectdelay_tilde_setup in the code, it is format-wise (TTBOMYK) the same as other signal-based externals. At any rate, I am stuck and unsure how to proceed. Please advise.
build script: gcc -DPD -g -I/usr/local/include/pdl2ork -I../Spectacle -o
spectdelay~.o -c spectdelay~.cpp gcc -o spectdelay~.pd_linux spectdelay~.o -Wall -W -Wstrict-prototypes -Wno-unused -Wno-parentheses -Wno-switch -O6 -funroll-loops -fomit-frame-pointer -fno-strict-aliasing -fPIC -DUNIX -Wl,--export-dynamic-shared ../Spectacle/Spectacle.o ../Spectacle/ SpectacleBase.o ../genlib/Odelay.o ../genlib/Obucket.o ../genlib/ FFTReal.o ../genlib/Offt.osource file is attached. Bunch of .o files are independent/shared .o files that have been built as follows: gcc -c -o Ooscil.o Ooscil.cpp
Any ideas as to why is this happening?
TIA
<spectdelay~.cpp>_______________________________________________ Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
As we enjoy great advantages from inventions of others, we should be
glad of an opportunity to serve others by any invention of ours; and
this we should do freely and generously. - Benjamin Franklin
On Sun, 2010-12-26 at 23:57 -0500, Ivica Ico Bukvic wrote:
it's declared as void, not static. extension is inherited from the original code but is not cpp code, afaik.
Ico
Actually, I stand corrected. It is cpp and a simple extern "C" did the trick. Now onto tracking segfaults...
On Sun, 26 Dec 2010, Hans-Christoph Steiner wrote:
I don't know about C++, but in C that sounds like the setup function is declared as 'static'.
C++ symbols aren't like C symbols, as they contain namespace information, type information (of function arguments), etc. They begin with "_Z".
If you want to have spectdelay_tilde_setup in C++, you have to use the «extern "C"» prefix, to prevent C++ from prepending "_Z" and appending what it takes to say "it's a void function"...
| Mathieu Bouchard ---- tél: +1.514.383.3801 ---- Villeray, Montréal, QC