2010-04-10 3 views
1

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

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

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

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 

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

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

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

ответ

4

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

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

0

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

Вы можете ознакомиться с ссылкой на общие библиотеки here.

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

+1

Я думаю, что передовые системы сборки будут излишними для того, что он пытается сделать. Mayb, использующий Make, был бы более полезен для новичка. – pmr

0

Ubuntu 17,04

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