Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Failed to link while building XS code

by llancet (Friar)
on Jan 06, 2014 at 13:26 UTC ( #1069508=perlquestion: print w/replies, xml ) Need Help??
llancet has asked for the wisdom of the Perl Monks concerning the following question:

I'm writing an module with XS. On the last step of linking every thing together, the linker failed:
cc -shared -L/usr/local/lib -fstack-protector -o blib/arch/auto/GenoEy +e/ buildtmp/GenoEye.o -lcairo /usr/bin/ld: cannot find -lcairo collect2: error: ld returned 1 exit status
But the cairo library is out there. I manually run the link command, it runs successful.
$ cc -shared -L/usr/local/lib -fstack-protector -o blib/arch/auto/Geno +Eye/ buildtmp/GenoEye.o -lcairo $ ls blib/arch/auto/GenoEye/
Why it failed in perl build script? I use Module::Build::WithXSpp and a Build.PL.

Replies are listed 'Best First'.
Re: Failed to link while building XS code
by syphilis (Chancellor) on Jan 06, 2014 at 13:58 UTC
    But the cairo library is out there. I manually run the link command, it runs successful

    Take a close look at the output from the ./Build.PL step - mainly checking to see if there's any mention of a problem locating "-lcairo".

    I'm wondering whether perl, having not been able to find -lcairo, might then do something to the environment that ensures that the linker won't find it either.
    Then, when you run the command manually, it works because you're now running in an environment that perl has not corrupted.

    Just a guess ... I'm not all that familiar with Module::Build ... and firmly committed to staying that way.

      Build.PL does not output anything strange. The cairo library is indexed by ldconfig:
      # ldconfig -p | grep (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcairo (libc6) => /usr/lib/i386-linux-gnu/ (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcairo.s +o

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1069508]
Approved by marto
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (7)
As of 2017-12-18 13:01 GMT
Find Nodes?
    Voting Booth?
    What programming language do you hate the most?

    Results (485 votes). Check out past polls.