如何使用终端在Mac OS X上运行C程序?


81

我是C的新手。这是我的“世界,您好!” 程序。

#include <stdio.h>

int main(void)    
{
  printf("Hello, world!\n");
  return 0;
}

在尝试使用Terminal运行它之后,它说:

MacBook-Pro-MacBook:~ macbook$ /Users/macbook/Desktop/peng/Untitled1
-bash: /Users/macbook/Desktop/peng/Untitled1: Permission denied
MacBook-Pro-MacBook:~ macbook$ 

为什么?



什么是文件“ Untitled1”?包含您在问题中包含的来源的文件还是其他内容?
pasaba por aqui

替换pintfprintf,将int和main保持在同一行。
Walter

Answers:


161

首先将程序另存为program.c

现在您需要编译器,因此您需要转到App Store并安装Xcode,它是Apple的编译器和开发工具。如何找到App Store?通过输入文字进行“聚光搜索”Space然后开始输入文字,App Store然后Enter在正确猜测时点击。

App Store看起来像这样:

在此处输入图片说明

XcodeApp Store上看起来像这样:

在此处输入图片说明

然后,您需要在Terminal中安装命令行工具。如何启动终端?您需要执行另一个“ Spotlight Search”,这意味着您键入Space并开始键入内容TerminalEnter在猜测时点击Terminal

现在安装这样的命令行工具:

xcode-select --install

然后,您只需gcc在下一行中按如下方式运行即可编译代码,而无需启动大型丑陋的软件开发GUI Xcode

gcc -Wall -o program program.c

注意:在较新版本的OS X中,您可以使用clang代替gcc,例如:

clang program.c -o program

然后,您可以使用以下命令运行它:

./program
Hello, world!

如果您的程序是C ++,则可能要使用以下命令之一:

clang++ -o program program.cpp
g++ -std=c++11 -o program program.cpp
g++-7 -std=c++11 -o program program.cpp

6
做到这一点gcc -Wall -o program program.c,您将获得有用的编译器警告(尽管不是全部),这些警告将告诉您代码无法正常工作的一些原因。
Schwern

好的答案,但是请注意,无需显式调用clang-gcc无论如何都与clang符号链接。
Paul R

51

首先,请确保您更正程序:

#include <stdio.h>

int main(void) {
   printf("Hello, world!\n"); //printf instead of pintf
   return 0;
}

将文件另存为,HelloWorld.c然后在终端中输入:

gcc -o HelloWorld HelloWorld.c

然后像这样运行可执行文件:

./HelloWorld

你应该看到 Hello World!


6
最好将文件另存为Untitled.c。更好的是:使用更有意义的文件名。
Jongware

9

不应运行“ C程序”。它打算被编译成一个“可执行”程序,然后可以从您的终端运行。为此,您需要一个编译器

哦,最后一个问题(“为什么?”)的答案是,您尝试执行的文件没有设置可执行权限(编译器通常会自动使用二进制文件设置权限,这可以推断您正在尝试执行该文件)将源代码作为脚本运行,因此提示编译。)


1
最佳答案!A "C-program" is not supposed to be run.
艾迪(Eddie)

9

在2019年工作 默认情况下,您可以使用终端编译name.c

 cc name.c

如果您需要运行,只需编写

 ./name.out

2
无论名称是什么,其显示为“ a.out”而不是f“ {name} .out”。由于某种原因,它总是“ a”。
Flaming_Dorito

1
@Flaming_Dorito,这是创建可执行对象文件的默认行为。但是,您可以选择给它起自己喜欢的名字。键入-> cc -o name name.c
Yash Tamakuwala

@YashTamakuwala哦,我明白了。谢谢
Flaming_Dorito

4

去做这个:

  1. 打开终端

  2. 键入终端:nano; 这是可用于终端的文本编辑器。当您这样做时。这样的事情会出现。

  3. 在这里你可以输入你的C程序

  4. 输入control(^) + x->表示退出。

  5. 通过输入y以保存文件来保存文件

  6. 写文件名;例如helloStack.c(不要忘记添加.c

  7. 出现时,输入 gcc helloStack.c

  8. 然后./a.out:这应该给您您的结果!

3

只需按照以下步骤在macOS中编译C程序

在终端中使用cd命令转到您的c程序位置,
然后键入在
make filename下面显示的命令,
然后键入
./filename


2

要在最新的macOS上编译ac程序,只需在保存带有.c扩展名的文件并到达保存文件的路径后,在终端中键入以下命令:

cc yourfilename.c

一旦检查完编译后的所有错误(如果有),请键入以下代码以执行代码:

./a.out

这些命令已在macOS Mohave上进行了测试,并且工作正常,请加油!


0

答案是chmod 755你好-它使文件可执行...很有趣,因此没有人回答。我在MacOS上遇到了同样的问题,现在已经解决了。

nano hello.c make hello chmod 755 hello然后您通过./hello运行它

clang --version Apple LLVM版本8.0.0(clang-800.0.42.1)目标:x86_64-apple-darwin15.6.0

没有安装任何东西,nano make(clang)chmod-已经在MacOS中


-1

1)首先,您需要为Mac安装GCC编译器(Google并通过网络进行安装)

2)记住存储C文件的路径

3)转到终端并设置路径

例如-如果您已经将新文件夹ProgramC保存在Document文件夹中

   then type this in Terminal
    cd Document
    cd ProgramC

4)现在您可以看到您位于保存C程序的文件夹中(让您将程序另存为Hello.c)。

5)现在编译你的程序

   make Hello
   ./hello
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.