我使用 Sublime 3 进行 C 编程。 如果我在终端中使用 gcc 编译 C 文件,它将生成一个扩展名为 .out 的可执行文件。但我无法通过双击运行它。如果我在 Sublime 中编译它,我将得到一个 Unix 可执行文件。所以我的问题是为什么 Sublime 中的编译器可以创建 Unix 可执行文件,而终端却不能?
最佳答案
假设您有以下 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 中双击的文件(通过在终端中打开它),您有三个简单的选择:
- 在 Finder 中将文件
xx.out
重命名为xx
。它会询问您是否确定,但一旦您确定,它应该可以双击; - 重新配置 Sublime,使其不使用
gcc
的C
文件的.out
扩展名; - 创建 application bundle (本质上是一个文件夹,具有以可配置方式执行其中文件的双击操作)使用 Apple 工具或类似 Platypus 的工具.
你可以 associate使用终端的 .out
文件。我不建议这样做,原因有几个——主要是文件现在可以在您的计算机上运行,但不能在其他配置不相似的 OS X 系统上运行。
祝你好运。
关于c - 如何在 Mac 上使用 C 文件创建 Unix Executive 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42940835/