我使用Sublime 3进行C编程。 如果我在终端中使用gcc编译了C文件,它将生成一个扩展名为.out的可执行文件。但我不能通过双击来运行它。如果我在Sublime中编译它,我将获得一个Unix可执行文件。所以我的问题是为什么Sublime中的编译器可以创建一个Unix可执行文件,但是终端可以&#t; t?
答案 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中双击的文件(通过在终端中打开它),你有三个简单的选择:
xx.out
重命名为xx
。它会问你确定,但一旦你这样做,应该是双击的; .out
文件C
扩展名gcc
; 你可以 associate .out
个终端文件。我不建议这样做有几个原因 - 大多数情况下,文件现在可以在您的计算机上运行,但不会在其他类似配置的OS X系统上运行。
祝你好运。