Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

If I have a program named program, is there a way to know which dynamic libraries it loads and uses?

It's a simple question. I can elaborate more if needed, but I'll keep the question simple based on Tomas's suggestion.

share|improve this question
Could downvoter please explain? I understand it's not a very complex problem, but if that upsets you... sorry. – Cornstalks Jul 16 '13 at 21:11
I didn't downvote, but maybe your question sounds little confusing. The 1st paragraph is there only for confusion, the question started to be clear when I read the 2nd. Maybe just delete the 1st and it will be fine :) – Tomas Jul 16 '13 at 21:18
@Tomas: Will do, thanks for the feedback! – Cornstalks Jul 16 '13 at 21:21
up vote 8 down vote accepted

You can obtain a list of shared libraries that program is linked against with:

ldd `which program`
share|improve this answer
Ah, perfect. Thanks! – Cornstalks Jul 16 '13 at 21:12
six up votes for this? lol – Ярослав Рахматуллин Jul 16 '13 at 22:46
Backticks are obsolete and should no longer be used. This is because you may confuse them with '' or even with ´´ which both have different meaning. The better way is to do it like this: ldd $(which program) – l1zard Jul 16 '13 at 23:47
I like and prefer the backticks. They are nicer to look at and faster to type. If `, ", ', and ´ (the last one is not even ascii) are not visually distinct in a font, then that font is to blame. man bash(1) mentions this style of command substitution as old, but says nothing about obsolete. Is that your personal opinion? – Ярослав Рахматуллин Jul 17 '13 at 14:28

You must log in to answer this question.

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