Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

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 meditating upon the Monastery: (5)
As of 2018-06-20 04:32 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (116 votes). Check out past polls.