[PD] compiling external in linux

Hans-Christoph Steiner hans at at.or.at
Thu Oct 4 20:00:12 CEST 2012


Looks like you are using a very old Makefile. I highly recommend using
the Library Template.  Its well tested, easy to use, very
cross-platform, and even decently documented:

https://puredata.info/docs/developer/LibraryTemplate/

Its also very easy to then turn that library into a Debian or Gentoo
package.  And coming soon: RPMs.

.hc

On 10/04/2012 01:41 PM, Jaime Oliver wrote:
> dear all,
> 
> I am trying to compile a pd external in ubuntu 12.04 and get:
> 
> joliver at crystal:~/watercolor/tracks$ make tracks.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 tracks.o -c tracks.c
> ld -shared -o tracks.pd_linux tracks.o -lc -lm
> ld: tracks.o: relocation R_X86_64_32 against `.rodata.str1.8' can not
> be used when making a shared object; recompile with -fPIC
> tracks.o: could not read symbols: Bad value
> make: *** [tracks.pd_linux] Error 1
> 
> I have the following in my makefile (with -fPIC and all...):
> 
> # ----------------------- LINUX i386 -----------------------
> 
> .SUFFIXES: .pd_linux
> 
> LINUXCFLAGS =  -DPD  -O2 -funroll-loops -fomit-frame-pointer \
>     -Wall -W -Wshadow -Wstrict-prototypes -Werror \
>     -Wno-unused -Wno-parentheses -Wno-switch -fPIC
> 
> LINUXINCLUDE =  -I../../src
> 
> .c.pd_linux:
> 	cc $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c
> 	ld  -export_dynamic -shared -o $*.pd_linux $*.o -lc -lm
> 	strip --strip-unneeded $*.pd_linux
> 	rm $*.o
> 
> What could I be missing?
> 
> best,
> 
> J
> 
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
> 




More information about the Pd-list mailing list