linux c socket,求助

littlelocker 2014-02-26 05:28:28
我写了个socket的程序,在函数结尾处,gcc老爆错误
error: extended registers have no high halves
怎么回事啊?

IPCHandle ipc_client_init(char *server_ip, unsigned short port)
{
int fd;
struct sockaddr_in addr;
struct in_addr server;

fd = socket(AF_INET, SOCK_STREAM, 0);
if (fd < 0)
goto err;

memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);

if (server_ip) {
//if (inet_aton(server_ip, &server) == 0)
//goto close_err;
addr.sin_addr.s_addr = server.s_addr;
} else
addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);

if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0)
//.goto close_err;
sock_keepalive(fd);
return fd;

close_err:
close(fd);
err:
return -1;
}
...全文
187 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlelocker 2014-02-28
  • 打赏
  • 举报
回复
你不是说makefile tab被改成空格了?makefile中不能有空格吗?貌似我把这句注释了,就可以了,我实在看不出这句有啥错误啊 bin_PROGRAMS = configd_test
熊熊大叔 2014-02-27
  • 打赏
  • 举报
回复
if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) //.goto close_err; if没有注释掉, 导致后面的逻辑错误
littlelocker 2014-02-27
  • 打赏
  • 举报
回复
error: extended registers have no high halves 这种错误感觉不是语法错误啊,你刚回复过我的makefile的帖子,我感觉是哪个makefile弄的
赵4老师 2014-02-27
  • 打赏
  • 举报
回复
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
赵4老师 2014-02-27
  • 打赏
  • 举报
回复
引用 4 楼 littlelocker 的回复:
不是注释的这个问题,我光用gcc指令编译是可以过的,估计是makefile的问题
提醒:makefile里面的Tab字符必须是Tab字符本身,不能用空格代替。
littlelocker 2014-02-27
  • 打赏
  • 举报
回复
不是注释的这个问题,我光用gcc指令编译是可以过的,估计是makefile的问题

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧