【问题标题】:cannot execute binary files on MAC terminal无法在 MAC 终端上执行二进制文件
【发布时间】:2018-08-30 13:18:24
【问题描述】:

我使用 makefile 来生成文件。 gcc -c hello.c -o hello 并通过以下方式解决了权限问题: chmod a+x ./hello 但是,当我想执行“hello”文件时。 ./你好 系统告诉我“无法执行二进制文件” 有人能帮我吗?我非常期待您的回复。

【问题讨论】:

  • 可以发一下file ./hello的内容吗?

标签: c macos shell gcc


【解决方案1】:

gcc 的 -c 参数会生成一个目标文件,您稍后必须链接该目标文件才能生成可执行文件。您无法执行您生成的目标文件。

相反,要同时编译和链接,适合当你只有 1 个 .c 文件时,这样做

gcc hello.c -o hello

或者,如果您想将其分解为单独的编译和链接步骤,请执行

gcc -c hello.c -o hello.o
gcc hello.o -o hello

【讨论】:

    【解决方案2】:

    检查GCC编译器是否正确安装在您的系统中。

    gcc -v
    

    编译你的文件:

    gcc filename.cpp -o any-name
    

    运行你的程序:

    ./any-name
    

    【讨论】:

      【解决方案3】:

      作为同时编译和链接的替代方法,您可以使用make

      make hello
      

      注意:没有.c 扩展名。

      终端输出应该是:

      cc     hello.c   -o hello
      

      【讨论】:

        猜你喜欢
        • 2015-04-29
        • 2017-02-07
        • 2014-03-29
        • 1970-01-01
        • 2013-08-04
        • 1970-01-01
        • 2017-01-06
        • 1970-01-01
        • 2014-12-04
        相关资源
        最近更新 更多