需要检查一下这个文件是否 shell 脚本, 如果是shell脚本, 才可以使用 “sh ***.run”的形式执行。
如果本身是一个可执行的命令程序, 不需要使用 sh, 直接加上执行权限, 执行这个应用程序就可以 (类似 windows下的 。exe文件 )
如果不是shell脚本。
1、file 文件名
可以查看文件类型:
2、或者: more 文件名
查看文件内容是否可读文本。
3、修改权限
chmod 777 文件名。
或者: chmod a+x 文件。
如果没有权限, 需要文件属主或管理员用户(root)执行。
4、执行时注意程序路径
如果程序在当前目录下, 可以使用 ./文件名 的形式。
linux系统下遇到cannot execute binary file的问题一般有以下情况造成:
1、非root用户或者无执行权限。
2、 编译环境不同(程序由其他 *** 作环境复制过来)对于第一种情况,采用增加执行权限即可chmod +x program对于第二种情况,建议将该程序二进制包拷贝过来,重新编译程序。
3、硬件平台与软件不一致 , 例如: 32位系统,下载了个64位的软件,结果就无法执行 如果使用 file 命令检查的结果是 data, 而不是可执行文件, 那么在这个系统平台上不能直接运行这个文件
如果没有完整路径,那如何才能确定出错的准确位置?
显示错误堆栈信息是调试的时候协助解决程序bug的简单方法
一般生产发布的程序是不会Debug发布的,都是Release;而且在程序里面都是要catch所有的异常的,这样你的程序发布出去后才不会因为出现异常而泄露程序的关键信息,导致程序被攻击的风险
如果你觉得你的路径带有敏感信息,有一个简单的办法;换一个路径编译
比如我这个程序是在VPS里面编译的,它就会显示VPS里面的路径
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)