红联Linux门户
Linux帮助

错误error: ‘struct dentry’ has no member named ‘d_alias’

发布时间:2017-01-06 10:16:08来源:linux网站作者:密斯泽基
一直安装但是总是会安装编译时出现以上的错误
error: ‘struct dentry’ has no member named ‘d_alias’
/tmp/modconfig-ESluHO/vmhgfs-only/inode.c: In function ‘HgfsPermission’:  
/tmp/modconfig-ESluHO/vmhgfs-only/inode.c:1978:34: error: ‘struct dentry’ has no member named ‘d_alias’  
/tmp/modconfig-ESluHO/vmhgfs-only/inode.c:1978:34: warning: initialisation from incompatible pointer type [enabled by default]  
/tmp/modconfig-ESluHO/vmhgfs-only/inode.c:1978:34: warning: (near initialisation for ‘dentry’) [enabled by default]  
/tmp/modconfig-ESluHO/vmhgfs-only/inode.c:1978:34: error: ‘struct dentry’ has no member named ‘d_alias’  
CC [M] /tmp/modconfig-ESluHO/vmhgfs-only/request.o  
make[2]: *** [/tmp/modconfig-ESluHO/vmhgfs-only/inode.o] Error 1  
make[2]: *** Waiting for unfinished jobs....  
make[1]: *** [module/tmp/modconfig-ESluHO/vmhgfs-only] Error 2  
make[1]: Leaving directory /usr/src/linux-headers-3.2.0-76-generic'   
make: *** [vmhgfs.ko] Error 2   
make: Leaving directory/tmp/modconfig-ESluHO/vmhgfs-only'  
错误error: ‘struct dentry’ has no member named ‘d_alias’
 
最后我终于在github上找到原因,其实就是这个结构体的成员变量换名了而已。
 
第一步:
首先解压你的tgz安装包,我这里的安装包名称是VMwareTools-9.6.1-1378637.tar.gz
1.然后进入源文件文件夹
# cd vmware-tools-distrib/lib/modules/source/ 
2.将vmhgfs.tar进行解压
# tar cvf vmhgfs.tar
3.编辑解压出来的源文件
# vi vmhgfs-only/inode.c 
4.使用vi命令行模式输入命令
":%s/d_alias/d_u.d_alias/g"   (命令为引号内的) 执行之后保存退出.
5.将压缩包压缩回原tar包
# tar cvf vmhgfs.tar vmhgfs-only
6.回到安装目录vmware-tools-distrib进行安装vmtools
# sudo ./vmware-install.pl
 
第二步:
安装步骤一直回车确认就行,安装好后,设置下虚拟机的共享文件夹,就OK啦!
 
补充一下:最好使用虚拟机10.0以上版本,低版本虚拟机都有可能出现这种错误,并且这方法也不一定都管用。VMwareTools-10.0.6-3595377.tar.gz 这个版本在vmware workstation 12.0上就很好用,其实是虚拟机问题,不是系统问题。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27567.html