I installed a library via apt but it added no .pc file to the pkg-config dir. When I built another manually it got added. Is there a convention for libs automatically creating a .pc file and if so when and how is it done?
Asked
Active
Viewed 5,433 times
2 Answers
8
Like .so symlinks and .h header files, the .pc files are not be shipped in libXXX debian packages, but in the accompanying libXXX-dev packages as they are only useful when developing against that library.
Dennis Kaarsemaker
- 8,420
- 3
- 29
- 31
-
It was the dev package I installed via apt, yet no .pc file? – user1561108 Mar 25 '13 at 09:36
-
(package - libboost1.42-dev) – user1561108 Mar 25 '13 at 09:37
-
1Boost doesn't ship .pc files as it installs headers etc. in /usr/, so the compiler will find them without extra flags. – Dennis Kaarsemaker Mar 25 '13 at 09:42
-
Ditto. Not everything uses pkg-config. Some of boost does require a linker flag, but you don't need a .pc file for any of this -- altho if you google "libboost pkg-config" you'll find some debate from downstream packagers. – goldilocks Mar 25 '13 at 09:46
-
I had to add '-lboost_filesystem' flag when compiling my src for that lib, is that expected? – user1561108 Mar 25 '13 at 11:23
-
*for that lib - I meant 'with that lib'. – user1561108 Mar 25 '13 at 12:08
1
Yes you should always do that.
For users who use your library, pkg-config --libs --cflags libmtp is always easier than appending these flags manually, and they don't need to guess the dependency of your library.
And I don't think there's a way automating it.
daisy
- 53,527
- 78
- 236
- 383