Использование библиотечных файлов в Linux - PullRequest
1 голос
/ 10 апреля 2010

Я пытаюсь использовать некоторые функции из библиотеки /lib/libproc-3.2.6.so в моем дистрибутиве Ubuntu.

Я скачал и установил файлы заголовков, и они определены в моих исходных файлах.

В настоящее время это все, что я пытаюсь сделать, просто для начала ...

proc_t **read_proc = readproctab(0);

Но я получаю следующую ошибку компилятора:

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

Я знаю, что, возможно, я делаю что-то не так с командой, которую использую для ее компиляции, но из-за недостатка опыта я не уверен, что делаю неправильно. Это команда g ++, которую я использую для компиляции моего cpp-файла:

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

Может кто-нибудь дать мне несколько советов относительно того, где я иду не так.

Ответы [ 3 ]

4 голосов
/ 10 апреля 2010

Вы не связываете свой исполняемый файл с libproc (то есть компоновщик сообщение об ошибке).

Попробуйте добавить -lproc к команде компоновщика.

0 голосов
/ 21 августа 2017

Ubuntu 17.04

Вы, вероятно, хотите использовать -lprocps вместо -lproc.

0 голосов
/ 10 апреля 2010

Вы на самом деле не ссылаетесь на библиотеку, которую хотите использовать, вы просто включаете ее заголовочные файлы, поэтому компилятор будет жаловаться на неопределенные ссылки.

Вы можете прочитать о связывании с общими библиотеками здесь .

Небольшое предложение, начните использовать инструмент сборки SCons , он может позаботиться о связывании библиотек для вас, просто добавьте те, которые вы хотите использовать в файле SConstruct, который требуется SCons, и тогда вы не нужно связываться со спецификой компилятора. Вы также получаете много других хороших вещей, которые предоставляют SCons. Настоятельно рекомендуется.

...