如何在Mac OS X上编译和运行C程序

JT9*_*JT9 33 c

我正在大学学习C课程,并希望在Mac上使用TextWrangler文本编辑器编写程序(运行OSX Lion 10.7).一旦我写了.c文件,我就用gcc编译它.我从Apple Developer Tools下载了编译器.

它包含在命令行工具下载中.我使用Terminal找到该文件,使用gcc filename.c编译它,其中创建了a.out可执行文件.但是,当我输入"a.out"或"/a.out"时,我收到以下消息:"-bash:a.out:command not found"或"-bash:/a.out:没有这样的文件或目录".在使用相同的方法之前,我已经在Linux系统上成功编译并运行了C程序.我在Mac上做错了什么?

MBy*_*ByD 49

您需要添加一个点来指示可执行文件位于当前目录中,因为当前目录不在路径中:

./a.out
Run Code Online (Sandbox Code Playgroud)

  • @JTWheeler,您也可以考虑命名您的目标文件,因为这会阻止在同一目录中手动编译多个C程序时覆盖a.out.做`gcc myprog1.c -o myprog1.o`并通过执行`./myprog1.o`来运行它.只是一个建议.另外,您可以使用clang代替gcc来练习代码,因为它可以提供更好的错误详细信息. (2认同)

bec*_*kah 17

你只是缺少一件事!而不是"/a.out"它应该是"./a.out".另一个有用的东西是更改输出,以便您可以拥有多个已编译的程序.简单地说,您需要在终端中放置的唯一内容如下(用你想要的东西填空)

gcc nameofprogramyouwrote.c -o whatyouwanttheprogramtobenamed
Run Code Online (Sandbox Code Playgroud)

祝好运!


aFa*_*ria 6

构建:

    gcc -Wall -o yourFile yourFile.c
Run Code Online (Sandbox Code Playgroud)

然后执行:

    ./yourFile
Run Code Online (Sandbox Code Playgroud)


Dru*_*erB 5

你必须在斜线前添加一个点:

./a.out
Run Code Online (Sandbox Code Playgroud)

/a.out会尝试在根文件夹(/)中执行程序.
a.out将在PATH环境变量中定义的所有文件夹中查找您的程序.

在使用相同的方法之前,我已经在Linux系统上成功编译并运行了C程序.我在Mac上做错了什么?

你必须在Linux上做同样的事情.