如何使用C文件在Mac上创建Unix Executive文件

时间:2017-03-22 00:53:20

标签: c macos

我使用Sublime 3进行C编程。 如果我在终端中使用gcc编译了C文件,它将生成一个扩展名为.out的可执行文件。但我不能通过双击来运行它。如果我在Sublime中编译它,我将获得一个Unix可执行文件。所以我的问题是为什么Sublime中的编译器可以创建一个Unix可执行文件,但是终端可以&#t; t?

1 个答案:

答案 0 :(得分:0)

假设您有以下C源文件:

$ cat hello.c
#include <stdio.h>

int
main (void)
{
  printf ("Hello, world!\n");
  return 0;
}   // from 'An Intro to GCC'

您可以将其编译成gcc的可执行文件,如下所示:

$ gcc -Wall hello.c -o hello

如果您现在键入路径和命令名称,它将运行:

$ ./hello
Hello, world!

如果您转到Finder并双击该文件,它将在新的终端窗口中运行。

然而,如果您改为:

$ gcc -Wall hello.c -o hello.out

现在在终端中运行:

$ ./hello.out
Hello, world!

看起来很好,但如果您在Finder中双击该文件,则会收到错误,因为.out文件没有与终端的Finder关联。

如果你想创建一个C文件并编译成支持在Finder中双击的文件(通过在终端中打开它),你有三个简单的选择:

  1. 在Finder中将文件xx.out重命名为xx。它会问你确定,但一旦你这样做,应该是双击的;
  2. 重新配置Sublime,不使用.out文件C扩展名gcc;
  3. 使用Apple工具或类似application bundle之类的东西,创建一个Platypus(一个本质上具有以可配置方式执行文件的双击操作的文件夹)。
  4. 可以 associate .out个终端文件。我不建议这样做有几个原因 - 大多数情况下,文件现在可以在您的计算机上运行,​​但不会在其他类似配置的OS X系统上运行。

    祝你好运。