如何在linux虚拟机下运行U盘上的c++源程序,运行.cpp,是不是要先把文件复制在Linux下,求详细的编程过程

如何在linux虚拟机下运行U盘上的c++源程序,运行.cpp,是不是要先把文件复制在Linux下,求详细的编程过程,第1张

源程序先要进行编译连接,生成可执行文件

编译工具在linux里面有g++等等(大多数linux安装系统时会默认安装)。

你可以先把cpp文件复制到虚拟机中(虚拟机和主机文件共享这里就不说了,网上很多方法自己找下),然后再终端运行"g++ 源程序.cpp -o 目标文件"(如果提示没有g++,表示你的linux中没有安装该编译工具(或者系统环境变量没有设置好),从网上下载安装包安装就行了)。

最后运行 “./目标文件” 就OK了。

使用函数

char *getfullpath(struct inode *inod)

{

struct dentry *dent = container_of(inod, struct dentry, d_inode)

if(dent == NULL)

printk("dent == NULL\n")

struct path *pat = container_of(dent, struct path, dentry)

if(pat ==NULL)

printk("pat == NULL\n")

else

printk("%p\n",pat)

struct file *filp = filp_open("/media/aaaaaa/", O_RDONLY, 0600)

if(filp ==NULL)

printk("file failed\n")

else

printk("%p\n",&(filp->f_path))

filp_close(filp,NULL)

char *path=NULL, *start=NULL

char *fullpath=NULL

printk("fullpath\n")

fullpath = kmalloc(PATH_MAX,GFP_KERNEL)

if(fullpath == NULL)

printk("kmalloc NULL\n")

printk("seccess\n")

if(!fullpath)

goto OUT

memset(fullpath,0,PATH_MAX)

path = kmalloc(PATH_MAX,GFP_KERNEL)

if(!path)

{

printk("path NULL\n")

kfree(fullpath)

goto OUT

}

memset(path,0,PATH_MAX)

//get the path

start = d_path(pat,path,PATH_MAX) //就是到这个函数挂,参数前面打印的不能在详细了 , 没有出现NULL的, 但是还是挂

if(start == NULL)

printk("d_path NULL \n")

printk("d_path seccess\n")

strcpy(fullpath,start)

kfree(path)

OUT:

return fullpath

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11179503.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存