0

While I make from source codes, I get a mistake in the final CCLD, saying cannot find libudev.la. I tried to re-install udev libudev1 libudev-dev, failed to make 'make' work.

I googled and found a solution in : http://sourceforge.net/p/enlightenment/mailman/message/30787126/ which said ' easy fix is to remove all *.la files from /usr/lib ' I tried but failed again.

Finally I decided to make it manually: I copied a libudev.la from old versions of ubuntu and edited it. it was: # The name that we can dlopen(3). dlname='libudev.so.0'

# Names of this library.
library_names='libudev.so.0.13.0 libudev.so.0 libudev.so'

# The name of the static archive.
old_library='libudev.a'
...

and I found the versions of libudev was changed , so I changed something in it which made it: dlname='libudev.so.0'

# Names of this library.
library_names='libudev.so.1.3.5 libudev.so.0 libudev.so.1 libudev.so'

# The name of the static archive.
old_library=''

I deleted old_library because I can't find libudev.a

I succeed in make and install, it worked well till now. But I still wonder is it OK to do it that way?

Blangero
  • 115
  • 1
  • 1
  • 10
  • What are those names used for? I think in general, when building the package, you should let system to choose whatever it needs when linking. Can you write where are those lists used and what for? More about build system that is propably using these libraries with explicit file names? – Pihhan Oct 15 '14 at 08:43
  • I don't know what the names are used for, so I'm curious about whether changing them and use the la file is correct. And, as it is now, it's what I'm asking @_@ ~ – Blangero Oct 16 '14 at 04:38
  • What are you trying to accomplish? What kind of package are you trying to make work and where did you get it? These are not to manual configuration and you are doing something wrong, if it is looking for something not present. What kind of sources are you trying to link? Usually -ludev should be enough, you should not care about exact version of library or how the file is named. When building from source, of course. – Pihhan Oct 17 '14 at 07:46
  • @Pihhan Hi, I'm trying to compile spice-gtk from source and in the final of make, I mean, CCLD, the make fails due to the short of libudev.la. The file exists in Ubuntu 12.04, but not in 13.04 or 14.04, but all the .so files needed do exist. That's why I copy and edit the file on my own. – Blangero Oct 23 '14 at 01:23
  • It is strange it thinks it should use that file. Is libudev.la mentioned anywhere inside spice-gtk sources? Why do you think it is still needed in 13.04 or 14.04? Did you make clean and reconfigured your project since upgrade? – Pihhan Oct 23 '14 at 13:19
  • What is ubuntu version you are trying it on? You may try to use libtool manually to generate correct file for your version. Try visiting https://www.gnu.org/software/libtool/manual/html_node/Linking-libraries.html But I think your source is wrong configured or needs modification, instead of system files. – Pihhan Oct 23 '14 at 13:31
  • I solved the problem by updating the pacakge, all works fine now, thanks you guys, I learnt a lot. – Blangero Mar 05 '15 at 03:21

0 Answers0