After compiling 9.0.4 can't find a library that is there

Updating to Debian 13 broke my 9.0.0 so I downloaded the sources and compiled 9.0.4. Seems I have some stale files too. I guess I thought I could just upgrade without removing the old version?

hermit@release:kicad
kicad: error while loading shared libraries: libkigal.so.9.0.4: cannot open shared object file: No such file or directory
hermit@release:ls -lath /usr/local/lib/libkigal*
lrwxrwxrwx 1 root root   17 Aug 31 17:12 /usr/local/lib/libkigal.so -> libkigal.so.9.0.4
-rw-r--r-- 1 root root  31M Aug 31 12:48 /usr/local/lib/libkigal.so.9.0.4
-rw-r--r-- 1 root root 5.2M Feb 23  2025 /usr/local/lib/libkigal.so.9.0.0
-rw-r--r-- 1 root root  28M Mar 15  2024 /usr/local/lib/libkigal.so.8.0.1

Can you do: ldd kicad on your newly compilied version. And how did you compile it? Sharing your compile logs would help. In your case, maybe you don’t have /usr/local/lib in your /etc/ld.so.conf.d/* files? That would be a first place to check as well.

But more importantly, share how you configured and compiled your new install.

John

1 Like

I compiled it using the protobuf option from the documentation page.

Pretty much how I’ve always done it. The upgrade from Debian 12 to 13 went smoothly so I don’t know what settings may have changed.

I don’t do much compiling now days and I’m not a coder. Kicad is one of the few programs I off road with. I really try to stick to packages now but when I started Debian was well behind with versions. I don’t know if I didn’t know of backports then or if backports didn’t know about Kicad . :wink: I’m not seeing any obvious compile logs but I don’t know where to look.

cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
      -DKICAD_USE_CMAKE_FINDPROTOBUF=ON \
        ../../
root@never:/usr/local/bin# ld ./kicad
ld: ./kicad: _ZTV10wxCheckBox: invalid version 2 (max 0)
ld: ./kicad: error adding symbols: bad value


root@never:/home/hermit# grep -r local /etc/ld* 
grep: /etc/ld.so.cache: binary file matches
/etc/ld.so.conf.d/i386-linux-gnu.conf:/usr/local/lib/i386-linux-gnu
/etc/ld.so.conf.d/i386-linux-gnu.conf:/usr/local/lib/i686-linux-gnu
/etc/ld.so.conf.d/x86_64-linux-gnu.conf:/usr/local/lib/x86_64-linux-gnu
/etc/ld.so.conf.d/libc.conf:/usr/local/lib

First, try

and if it doesn’t help, do what |8gravely said: ldd kicad and show the output.

ldconfig worked. Not sure why I never had to do this before. I should bookmark your page for future reference though. Not like I’d remember it when needed. I remembered you had mentioned how to add dependencies once.
Thanks.

Gosh I understand the appeal of Linux being open source. But…

A year or two ago I took my old Win7 lab computer. I partitioned the HDD, installed Linux Mint and KiCad under that OS. I used it a bit (at my lab bench) but not very often and I never got comfortable with it. Of course I was “pushing” the capability of a somewhat obsolete computer. But…it sure seems to me like so much Linux stuff is… “Huh!!!” Completely “out of left field” but that does not make a lot of sense either, because I am not a baseball fan.

Of course I have plenty of complaints about Windows also. But it seems more like the “devil I know.”

Is there anyone out there who is comfortable in both worlds? Would it be accurate to say that a Linux user needs to be somewhat more of a computer geek? Or does that depend a lot on the version of Linux?

I got disgusted with Windows when 95 meant I had to learn their damned registry. I think they made it difficult by choice to discourage people from editing it. So I guess it means how much control you want in terms of what you are willing to learn. Either can be user unfriendly depending on what you want to do. I chose to roll my own in this case. The default was 9.0.2 and I could have just installed that package and waited.

Does computer geek mean not wanting ads pushed at me? :wink: I’ve read that’s a “feature” of W11.

Generally ldconfig is needed after a new dynamic library is installed and it’s usually invoked by the package updater. Somehow it was missed in your operations.

You can use Linux without being a geek. hermit is building a package, not something a software user normally does. If you tried to build software on Windows you’d have to know something about the Windows build environment too.

1 Like

Ahh OK. Thanks for reminding me of the essential context of @hermit 's posts in this thread.

When I build a package, I use cardboard and tape. :crazy_face:

Hope this doesn’t happen to you: :crazy_face:

1 Like

So I’m sorry I disappeared, $WORK swallowed me up this week so far. I did manage to spin up a Debian 13 VM and after downloading a truly amazing number of packages, I was able to happily compile it and it found all the libraries. HAven’t had time to actually run it unfortunately.

Compiling with CMake is a pain in the ass, and the documentation for compiling is limited.

Hopefully you’ve got it working!