1

我正在尝试/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

我知道我可能对我用来编译它的命令做错了,但由于缺乏经验,我不确定我做错了什么。这是我用来编译我的 cpp 文件的 g++ 命令:

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

有人可以给我一些关于我哪里出错的指示。

4

3 回答 3

4

您没有可执行文件与 libproc 链接(这是链接器错误消息)。

尝试添加-lproc到链接器命令。

于 2010-04-10T11:58:35.170 回答
0

您实际上并没有链接到您希望使用的库,您只是包含它的头文件,因此,编译器会抱怨未定义的引用。

您可以在此处阅读与共享库的链接。

一个小建议,开始使用构建工具SCons,它可以为您负责链接到库,只需将您希望使用的那些添加到 SCons 所需的 SConstruct 文件中,然后您就不必搞乱编译器的细节. 您还可以获得 SCons 提供的许多其他好东西。强烈推荐。

于 2010-04-10T12:06:50.713 回答
0

Ubuntu 17.04

您可能想使用-lprocps而不是-lproc.

于 2017-08-21T20:49:00.107 回答