QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1058|回复: 11

我学着使用libgtop,编译联接时遇到这个问题,大家帮帮忙

[复制链接]
发表于 2004-9-21 17:05:25 | 显示全部楼层 |阅读模式
非常感谢大家。我在程序联接时遇到下面问题,该怎么解决?有例子可以给我发一个吗?
[email protected]

下面是代码:
[code:1]int main(void)
{
        glibtop_cpu myCpu;
        glibtop_init();
        glibtop_get_cpu(&myCpu);
        printf("total:%d\nuser:%d\nnice:%d\nsys:%d\nidle:%d\nfrequency:%d\n",
                myCpu.total, myCpu.user, myCpu.nice, myCpu.sys, myCpu.idle,myCpu.frequency);
        return(0);
}[/code:1]
编译联接时错误如下:
g++ -g -I. -I/usr/include myglibtop.cpp -o myglibtop -L. -L/usr/lib -lgtop
-lgtop_sysdeps -lgtop_common
/tmp/ccoRbj6c.o(.text+0x20): In function `main':
/home/jywang/myExam/glibtop/myglibtop.cpp:9: undefined reference to
`glibtop_init_r(_glibtop**, unsigned long, unsigned)'
collect2: ld returned 1 exit status
make: *** [all] Error 1

是什么原因呢

谢谢各位了,我已经看很久了。
发表于 2004-9-21 19:41:39 | 显示全部楼层
有一个函数glibtop_init_r没有找到定义
回复

使用道具 举报

 楼主| 发表于 2004-9-22 08:09:27 | 显示全部楼层
应该不是这个问题。
头文件中是有这个定义的。我觉得错误是因为没有找到相应的库函数。
回复

使用道具 举报

发表于 2004-9-22 09:06:55 | 显示全部楼层
那就是你没正确给出这个库的位置,还只能靠你自己找找看。
回复

使用道具 举报

 楼主| 发表于 2004-9-22 09:33:11 | 显示全部楼层
例子很简单,您能帮忙试试吗。
库的位置应该没有问题。
我用的是redhat9.0。
回复

使用道具 举报

发表于 2004-9-22 09:53:46 | 显示全部楼层
[code:1][free@sagaeon lib]$ g++ -g -I. -I/usr/include/glibtop /home/free/program/temp/temp25.cc -o /home/free/program/temp/temp25.o -L. -L/usr/lib -lgtop  -lgtop_sysdeps -lgtop_common
/tmp/ccSZvki3.o(.text+0x20): In function `main':
/home/free/program/temp/temp25.cc:6: undefined reference to `glibtop_init_r(_glibtop**, unsigned long, unsigned)'
collect2: ld returned 1 exit status
[free@sagaeon lib]$

[/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-9-22 10:18:16 | 显示全部楼层
你有可以正常使用的例子吗,我已经没办法了。多谢了。
回复

使用道具 举报

发表于 2004-9-22 13:18:11 | 显示全部楼层
[code:1]
extern "C"{
   #include <glibtop/cpu.h>
}
int main(void)
{
        glibtop_cpu myCpu;
        glibtop_init();
        glibtop_get_cpu(&myCpu);
        printf("total:%d\nuser:%d\nnice:%d\nsys:%d\nidle:%d\nfrequency:%d\n",
                myCpu.total, myCpu.user, myCpu.nice, myCpu.sys, myCpu.idle,myCpu.frequency);
        return(0);
}
[/code:1]
c与c++的函数调用方式不一样,要加个 extern "C"
回复

使用道具 举报

 楼主| 发表于 2004-9-22 13:27:18 | 显示全部楼层
果然,你是怎么发现的,太感谢了,呵呵
回复

使用道具 举报

 楼主| 发表于 2004-9-22 13:31:47 | 显示全部楼层
例子中读出的数据与 /proc/stat 文件中的数据不一致,是怎么回事。
回复

使用道具 举报

发表于 2004-9-22 13:41:23 | 显示全部楼层
没用过 。好像mozilla比较熟,等他吧
回复

使用道具 举报

 楼主| 发表于 2004-9-22 13:49:39 | 显示全部楼层
真希望mozilla快点出现啊,呵呵
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 11:31 , Processed in 0.038701 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表