dev_nut
dev_nut

Reputation: 2552

What is the correct way to solve a linking error?

I'm using cmake on Ubuntu 14.04 to build pdf2htmlEx.

It required building poppler version >= 0.25. I built poppler version 0.35.0.

After this I was getting a linking error due to the earlier version of poppler getting linked.

I fixed this by doing this:

ln -s /usr/lib/libpoppler.so.54.0.0 /usr/lib/i386-linux-gnu/libpoppler.so

Basically pointing the poppler version here to the newly built version. This seemed like a hack.

My question is if I have two version of the same library, how do I make sure that "cmake" and "make" and "g++" (cmake was configured for poppler >= 0.25.0) finds the correct version? How do you correctly debug and fix such a linking error?

Upvotes: 2

Views: 47

Answers (1)

arrowd
arrowd

Reputation: 34421

The proper way would be to modify some variable (POPPLER_LIBRARY, i guess) in builddir/CMakeCache.txt. Be sure to regenerate build files with cmake . after editing this file (actually, in case of "unix makefiles" generator, running make will do too).

You can also use cmake-gui app, which allows you to view and edit cache values with nice graphical interface.

Upvotes: 1

Related Questions