免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3392 | 回复: 2
打印 上一主题 下一主题

SOLARIS 10 的C程序编译问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-29 15:35 |只看该作者 |倒序浏览
-bash-3.00$ cc -o io io.c\r\n\"io.c\", line 1: warning: invalid white space character in directive\r\n\"io.c\", line 2: warning: invalid white space character in directive\r\n\"io.c\", line 3: warning: invalid white space character in directive\r\n\"io.c\", line 4: warning: invalid white space character in directive\r\n\"io.c\", line 5: warning: invalid white space character in directive\r\n\"io.c\", line 6: warning: invalid white space character in directive\r\nUndefined                       first referenced\r\n symbol                             in file\r\nkstat_chain_update                  io.o\r\nkstat_read                          io.o\r\nkstat_open                          io.o\r\nld: fatal: Symbol referencing errors. No output written to io\r\n\r\n代码:\r\n#include <kstat.h> \r\n#include <stdio.h>\r\n#include <inttypes.h>\r\n#include <unistd.h>\r\n#include <string.h>\r\n#define SLEEPTIME 5 \r\n\r\nunsigned int sleep(unsigned int);\r\nvoid my_io_display(char *, char *, kstat_io_t); \r\n\r\nint main(int argc, char *argv[]) \r\n{ \r\n                kstat_ctl_t *kc; \r\n                kstat_t *ksp; \r\n                kstat_io_t kio; \r\n                \r\n                kc = kstat_open(); \r\n                \r\n                \r\n                while(1) { \r\n                                if(kstat_chain_update(kc)) \r\n                                fprintf(stderr, \"<<State Changed>>n\"); \r\n                                for (ksp = kc->kc_chain; ksp != NULL; ksp = ksp->ks_next) { \r\n                                                if (ksp->ks_type == KSTAT_TYPE_IO && strcmp(ksp->ks_class,\"disk\") == 0) { \r\n                                                                kstat_read(kc, ksp, &kio); \r\n                                                                my_io_display(ksp->ks_name, ksp->ks_class, kio); \r\n                                                } \r\n                                } \r\n                                sleep(SLEEPTIME); \r\n                } /* while(1) */ \r\n\r\n} \r\n\r\nvoid my_io_display(char *devname, char *class, kstat_io_t k) \r\n{ \r\nprintf(\"Name: %s Class: %sn\",devname,class); \r\nprintf(\"tnumber of bytes read %lldn\", k.nread); \r\nprintf(\"tnumber of bytes written %lldn\", k.nwritten); \r\nprintf(\"tnumber of read operations %dn\", k.reads); \r\nprintf(\"tnumber of write operations %dn\", k.writes); \r\n}

论坛徽章:
0
2 [报告]
发表于 2008-05-29 15:36 |只看该作者

回复 #1 LairaLee 的帖子

问题是:   \r\nUndefined                       first referenced\r\nsymbol                             in file\r\n\r\n是什么意思 如何修正

论坛徽章:
0
3 [报告]
发表于 2008-05-29 16:18 |只看该作者

回复 #2 LairaLee 的帖子

已经解决 \r\n\r\n编译是要添加 -lkstat  \r\ncc io.c -lkstat\r\n\r\n在MAN cc 的时候没有找到这个参数 在官方文档上找到!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP