[PD] help with error compiling externals in 6.externs?

Charles Z Henry czhenry at gmail.com
Fri May 29 17:40:26 CEST 2015


On Fri, May 29, 2015 at 10:23 AM, Forrest Curo <treegestalt at gmail.com> wrote:
> [Thanks!]
> Oops, that last apt-get update left me with no gcc...!
>
> But after fixing that:
>
> root at lapcritter:/usr/lib/puredata/doc/6.externs# make pd_linux
> gcc -DPD -O2 -funroll-loops -fomit-frame-pointer -Wall -W -Wshadow
> -Wstrict-prototypes -Werror -Wno-unused -Wno-parentheses -Wno-switch
> -I../../src -o obj1.o -c obj1.c
> ld -shared -o obj1.pd_linux obj1.o -lc -lm
> ld: obj1.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used
> when making a shared object; recompile with -fPIC
> obj1.o: could not read symbols: Bad value
> make: *** [obj1.pd_linux] Error 1

Edit your makefile and make sure CFLAGS includes "-fPIC"

> root at lapcritter:/usr/lib/puredata/doc/6.externs# nano makefile
> root at lapcritter:/usr/lib/puredata/doc/6.externs# make pd_linux
> gcc -DPD -O2 -funroll-loops -fomit-frame-pointer -Wall -W -Wshadow
> -Wstrict-prototypes -Werror -Wno-unused -Wno-parentheses -Wno-switch
> -I../../src -fPIC -o obj1.o -c obj1.c
> ld -shared -o obj1.pd_linux obj1.o -lc -lm
> ld: cannot find -lc
> ld: cannot find -lm
> make: *** [obj1.pd_linux] Error 1

You should have a
/usr/lib/libc.so
or /usr/lib64/libc.so

and
/usr/lib/libm.so
or /usr/lib64/libm.so

Check for these files first.  If they are not there, then you are
missing some very fundamental build tools.  It's among the first
things to install in linux, so I'll never remember the names for the
packages.

If the files ARE there, then your linker "ld" is missing them.  Run:
ldconfig

Chuck

> On Fri, May 29, 2015 at 7:48 AM, Charles Z Henry <czhenry at gmail.com> wrote:
>>
>> Hi Forrest,
>>
>> You can edit the makefile and replace "cc" with "gcc".
>>
>> On my system, "cc" is just a symlink to "gcc":
>> [root at farnsworth asdf]# ls -l `which cc`
>> lrwxrwxrwx 1 root root 3 Apr  6 11:36 /bin/cc -> gcc
>>
>> You can add that symlink as well:
>> ln -s /bin/gcc /bin/cc
>>
>> Chuck
>>
>>
>> On Fri, May 29, 2015 at 9:38 AM, Forrest Curo <treegestalt at gmail.com>
>> wrote:
>> > [I'd had this process down a few updates ago...]
>> >
>> > running as root, cd-ing to the directory containing these patches:
>> >
>> > /usr/lib/puredata/doc/6.externs# 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 obj1.o -c obj1.c
>> > make: cc: Command not found
>> > make: *** [obj1.pd_linux] Error 127
>> > ----------
>> > Any good way to just point gcc at each .c file?
>> >
>> > _______________________________________________
>> > Pd-list at lists.iem.at mailing list
>> > UNSUBSCRIBE and account-management ->
>> > http://lists.puredata.info/listinfo/pd-list
>> >
>
>
>
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>



More information about the Pd-list mailing list