Chinaunix

标题: HP: 函数res_init()在哪里定义的? [打印本页]

作者: breadso    时间: 2003-07-08 14:55
标题: HP: 函数res_init()在哪里定义的?
环境:HP
uname
HP-UX B.11.00 U 9000/800


man 中说res_init在resolv.h,可是我却没有找到?
用cc编译,可以顺利通过,
但是acc却不能找到res_init的定义。

那位仁兄知道为什么?
作者: mushuang    时间: 2003-07-08 15:16
标题: HP: 函数res_init()在哪里定义的?
看这两个的区别
可能查找INCLUDE路径不一样

使用grep查找它的定义就知道了
作者: breadso    时间: 2003-07-08 15:30
标题: HP: 函数res_init()在哪里定义的?
你实说编译器的,搜索路径不同?

能不能说详细些,拜托了。
作者: gadfly    时间: 2003-07-08 15:35
标题: HP: 函数res_init()在哪里定义的?
不同的编译器用的缺省头文件路径不一定一样。

你用gcc -E src.c方式可以看到包括的实际的头文件
作者: breadso    时间: 2003-07-08 20:30
标题: HP: 函数res_init()在哪里定义的?
我最早提过的:
man 中说res_init()在resolv.h,但是在这个文件中根本,没有这个函数的定义。!!?
所以觉得奇怪:
用cc. 在.c中可以编译执行。
用aCC, 在.C中却不能编译?

另外,我的HP没有gcc.
不过这个选项还可以用,只是输出的结果太多了,看不懂。。。
作者: mushuang    时间: 2003-07-08 20:52
标题: HP: 函数res_init()在哪里定义的?
.C  那难道你的c++与c头文件查找目录不一样吗
作者: breadso    时间: 2003-07-08 21:04
标题: HP: 函数res_init()在哪里定义的?
是呀!

我也就觉得纳闷,很奇怪,SunOS上就没有这个怪问题,?

真郁闷〉。不信可以试试:

/*file name : test.c*/
#include <resolv.h>;
#include <stdio.h>;
extern struct __res_state _res;
int main()
{       
       
        res_init();
        printf("domain name P:%s\n", _res.defdname);
}

cc test.c -o test

一切OK!
但是:
/*file name : test.C/
#include <resolv.h>;
#include <stdio.h>;
extern struct __res_state _res;
int main()
{       
       
        res_init();
        printf("domain name P:%s\n", _res.defdname);
}

aCC test.C -o test
就会出现以下信息:
Error 328: "test.C", line  # Function 'res_init' has not been defined yet; cannot call.
            res_init();


谁知道为什么??
作者: gadfly    时间: 2003-07-08 23:11
标题: HP: 函数res_init()在哪里定义的?
呵呵,你可以用
acc -E ...|grep resolv
cc -E ...|grep resolv
方式查找究竟包含的是哪个头文件亚。

并不需要你一行行的去查看
作者: 蓝色键盘    时间: 2003-07-10 13:46
标题: HP: 函数res_init()在哪里定义的?
呵呵,gadfly兄,是不是觉得回复这样的帖子很累!

碰到这种情况,要么不说,要么就说一次。


作者: fieryfox    时间: 2003-07-10 14:00
标题: HP: 函数res_init()在哪里定义的?
<arpa/nameser.h>;




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