2011/6/20 lubiao <[email protected]> > > > > 我用 "gcc-4.4 -Wall -O2 test.c" 编译失败,就使用 gcc-4.3 试试,也是如此。 > > > > struct ip_vs_get_services > > 有个特别的成员: > struct ip_vs_service_entry entrytable[0]; > > 可能跟优化选项有关系。把 -O2 去掉试试吧。 >
不是这个问题。运行我这个程序的主机原来是32bit,后来安装了64bit内核, 但是gcc默认仍旧生成32bit程序,结果系统调用接口的结构对齐约定就发生了冲突, 加上 -m64 就好了。 我的系统已经安装了32bit运行环境。我不明白的是,为什么32bit应用的 系统调用不会被64bit内核的32bit仿真层做兼容性转换?

