繁体   English   中英

AWS:无法执行二进制文件

[英]AWS : cannot execute binary file

我的服务器是Amazon Linux AMI 64位2014.09-release-notes

我编译了一个用C ++编码的程序(已安装gcc48-c ++。x86_64 ):

[root@ip-***-**-**-*** waveform_generator]# make
Compiled    [src/main.cpp] >> [src/main.o]
Compiled    [src/File.cpp] >> [src/File.o]
Compiled    [src/AGenerator.cpp] >> [src/AGenerator.o]
Compiled    [src/GeneratorSVG.cpp] >> [src/GeneratorSVG.o]
Compiled    [src/GeneratorCanvas.cpp] >> [src/GeneratorCanvas.o]
Compiled    [src/GeneratorPNG.cpp] >> [src/GeneratorPNG.o]
Compiled    [src/Header.cpp] >> [src/Header.o]
Compiled    [src/pngwriter.cpp] >> [src/pngwriter.o]
Built       [wfgen]

现在,当我执行编译文件“ wfgen”时,控制台将返回以下消息:

[root@ip-***-**-**-*** waveform_generator]# bash wfgen
wfgen: wfgen: cannot execute binary file

环境 :

[root@ip-***-**-**-*** waveform_generator]# uname -i
x86_64
[root@ip-***-**-**-*** waveform_generator]# file wfgen
wfgen: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, BuildID[sha1]=2e7c881c6fc10f12cdf49402edae1cc36b8d77a0, not stripped

您有解决我问题的方法吗?

非常感谢 :)

最大。

当您键入

[root@ip-***-**-**-*** waveform_generator]# bash wfgen

我认为bash希望wfgen是一个Shell脚本。 相反,您可以在提示符下直接键入程序名称

[root@ip-***-**-**-*** waveform_generator]#./wfgen

看起来编译正常, file命令的输出看起来不错。 我不知道Makefile中有什么,但也可以。

我不太了解您的环境,因此我在这里稍作猜测:如果其他一切正常,并且您仍然收到cannot execute binary file错误,则可能是因为您的文件系统已使用noexec挂载选项。

要检查是否存在这种情况,请运行mount ,然后确定当前目录位于哪个装载点下,并检查是否为此装载点设置了noexec装载选项。

如果确实是noexec问题,则有两个选择:

  1. 不使用noexec选项重新安装文件系统。 如果您希望此设置永久生效,请不要忘记编辑/etc/fstab (但是请注意, noexec可能是有原因的。请确保可以将其删除。)
  2. 如果只是一个二进制文件,请将其移至没有noexec限制的文件系统,然后从那里尝试。 一个好地方是/usr/local/bin目录(或/usr/local/sbin ,如果它是一个管理工具)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM