tags:

views:

69

answers:

2

Hi Guys,

Im trying to use some of the functions that are in the /lib/libproc-3.2.6.so library in my Ubuntu Distribution.

I have downloaded and installed the header files and they are defined in my source files.

Currently this is all im trying to do, just for starters...

proc_t **read_proc = readproctab(0);

But i get the following compiler error:

/tmp/cclqMImG.o: In function `Sysmon::initialise_sysmon()':
sysmon.cpp:(.text+0x494): undefined reference to `readproctab'
collect2: ld returned 1 exit status

Im aware im probably doing some wrong with the command im using to compile it, but due to lack of experience im not sure what im doign wrong. This is the g++ command im using to compile my cpp file:

g++ -o sysmon.o sysmon.cpp `pkg-config --libs --cflags gtk+-2.0`

Can someone please give me some pointers as to where im going wrong

Regards

Paul

+3  A: 

You are not linking your executable against libproc (that is a linker error message).

Try adding -lproc to the linker command.

ndim
lol, always simple, cheers ndim
paultop6
A: 

You are not actually linking against the library that you wish to use, you are merely including its header files, therefor, the compiler will complain about undefined references.

You can read up on linking against shared libraries here.

A small suggestion, start using the build tool SCons, it can take care of linking to libraries for you, just add the ones you wish to use in the SConstruct file required by SCons and then you don't have to mess about with compiler specifics. You also gain lots of other good stuff that SCons provide. It's highly recommended.

jimka
I think that advanced build systems would be overkill for what he is trying to do. Mayb using Make would be more beneficial to the beginner.
pmr