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?

2 Answers 2


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.

  • It was the dev package I installed via apt, yet no .pc file? Commented Mar 25, 2013 at 9:36
  • (package - libboost1.42-dev) Commented Mar 25, 2013 at 9:37
  • 1
    Boost doesn't ship .pc files as it installs headers etc. in /usr/, so the compiler will find them without extra flags. Commented Mar 25, 2013 at 9: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
    Commented Mar 25, 2013 at 9:46
  • I had to add '-lboost_filesystem' flag when compiling my src for that lib, is that expected? Commented Mar 25, 2013 at 11:23

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .