Hello all,
I am trying to compile a simple external (non-signal one) in Fedora in the following way:
I put a folder with the .c file, m_pd.h and the makefile (attached) in the extra folder, then cd into that folder and then type make pd_linux and get the following error. I'd appreciate pointers to this. I just compiled this in OSX and it worked correctly (equivalent process and make pd_darwin)
best,
Jaime
ERROR Message:
[joliverl@maquina analista]$ make pd_linux cc -DPD -O2 -funroll-loops -fomit-frame-pointer -Wall -W -Wshadow -Wstrict-prototypes -Werror -Wno-unused -Wno-parentheses -Wno-switch -I../../src -o analista.o -c analista.c ld -export_dynamic -shared -o analista.pd_linux analista.o -lc -lm ld: analista.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC analista.o: could not read symbols: Bad value make: *** [analista.pd_linux] Error 1
Jaime Oliver wrote:
Hello all,
I am trying to compile a simple external (non-signal one) in Fedora in the following way:
I put a folder with the .c file, m_pd.h and the makefile (attached) in the extra folder,
it is _really_ bad style to bundle the m_pd.h file with your code. imo, the more correct way would be to tell the compiler where to find the header-file (that is matching the Pd installation on your system) you can do so by adding the "-I" flag to the compiler flags; if you have installed Pd properly, you should find the m_pd.h file either in /usr/include or in /usr/local/include anyhow.
if you have everything in <pd>/extra/analista it should find the header in <pd>/src/ already, as you already have the "-I../../src" added.
[joliverl@maquina analista]$ make pd_linux cc -DPD -O2 -funroll-loops -fomit-frame-pointer -Wall -W -Wshadow -Wstrict-prototypes -Werror -Wno-unused -Wno-parentheses -Wno-switch -I../../src -o analista.o -c analista.c ld -export_dynamic -shared -o analista.pd_linux analista.o -lc -lm ld: analista.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
the error message is very clear here: "recompile with -fPIC". edit the makefile and add "-fPIC" to the compiler-flags (usually: CFLAGS) and re-compile. this is needed only on x86_64 (your skeleton makefile seems to be done for i386 only, so it's missing this flags), but it doesn't really hurt on i386.
analista.o: could not read symbols: Bad value make: *** [analista.pd_linux] Error 1
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list