Chinaunix

标题: SOLARIS 10 的C程序编译问题 [打印本页]

作者: LairaLee    时间: 2008-05-29 15:35
标题: SOLARIS 10 的C程序编译问题
-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}
作者: LairaLee    时间: 2008-05-29 15:36
标题: 回复 #1 LairaLee 的帖子
问题是:   \r\nUndefined                       first referenced\r\nsymbol                             in file\r\n\r\n是什么意思 如何修正
作者: LairaLee    时间: 2008-05-29 16:18
标题: 回复 #2 LairaLee 的帖子
已经解决 \r\n\r\n编译是要添加 -lkstat  \r\ncc io.c -lkstat\r\n\r\n在MAN cc 的时候没有找到这个参数 在官方文档上找到!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2