获取ip问题
简单写了个代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <unistd.h>
#include<iostream>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
int main(void)
{
char hostname[128];
memset(hostname, 0, sizeof(hostname));
gethostname(hostname, sizeof(hostname));
printf("The host name is %s\n",hostname);
struct hostent *phe=gethostbyname(hostname);
if (phe == 0)
{
printf("Yow! Bad host lookup.");
return 1;
}
for (int i = 0; phe->h_addr_list[i] != 0; ++i)
{
struct in_addr addr;
memcpy(&addr, phe->h_addr_list[i], sizeof(struct in_addr));
printf("Address %d : %s\n" , i, inet_ntoa(addr));
}
}
用g++编译出错:
未定义 文件中的
符号 在文件中
gethostbyname /var/tmp//cc6UweZq.o
ld: 致命的: 符号参照错误. 没有输出被写入a.out
collect2: ld returned 1 exit status
大家帮忙看是怎么回事?谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没找到gethostbyname,需要加 -l指定链接的库
不过我的环境中不加都能链接成功