2010-04-10 54 views
1

我試圖使用Ubuntu發行版中的/lib/libproc-3.2.6.so庫中的一些函數。在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 

我知道我」 m可能會對我用來編譯它的命令做一些錯誤,但由於缺乏經驗,我不確定我在做什麼錯誤。這是我使用的編譯我的cpp文件g ++命令:

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

可有人請給我一些指點因爲我要去錯在何處。

回答

4

你是不是鏈接你對libproc可執行文件(這是一個連接錯誤消息)。

嘗試將-lproc添加到鏈接器命令。

0

你實際上並沒有鏈接到你想使用的庫,你只是包括它的頭文件,因此,編譯器會抱怨未定義的引用。

您可以閱讀與共享庫here的鏈接。

一個小建議,開始使用構建工具SCons,它可以爲您鏈接到庫,只需添加您希望在SCons所需的SConstruct文件中使用的那些,然後您不必亂七八糟關於編譯器的細節。您還獲得了SCons提供的其他很多好東西。強烈推薦。

+1

我認爲先進的構建系統對他正在嘗試做的事情來說是過分的。 Mayb使用Make會對初學者更有益。 – pmr 2010-04-10 12:21:56

0

的Ubuntu 17.04

你可能想使用-lprocps而不是-lproc