2012-12-15 82 views
31

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

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

回答

40

您需要添加一个点,表示该可执行文件是在当前目录,当前目录不在路径:

./a.out 
+0

这做到了!谢谢! – JT9

+2

@JWWheeler,你也可以考虑命名你的目标文件,因为这样可以防止在同一目录中手动编译多个C程序时覆盖掉a.out。 做'gcc myprog1.c -o myprog1。o'并通过执行'。/ myprog1.o'运行。只是一个建议。 另外,您可以使用clang而不是gcc来练习代码,因为它提供了更好的错误细节。 – Bharat

3

请务必设置您的权限可执行使用chmod + X一.OUT

+3

gcc为你做...不需要运行chmod – benjarobin

+0

正确,但这是很好的做法,因为不是每个人都在使用gcc。 – MichaelM

4

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

./a.out 

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

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

你必须在Linux上也这样做。

17

你只是想念一件事! 而不是“/a.out”应该是“./a.out”。另一个有用的事情是改变输出,以便你可以有多个编译好的程序。简单地说,你需要放入终端的唯一东西是以下内容(用你想要的填充空格)

gcc nameofprogramyouwrote.c -o whatyouwanttheprogramtobenamed 

祝你好运!

-2

你需要一个编译器。最简单的方法是安装XCode。这样你就可以访问“gcc”,因此,

gcc -o mybinaryfile mysourcefile.c 

然后像这样运行它。

./mybinaryfile 

希望这有助于!

0

编译:

gcc -Wall -o yourFile yourFile.c 

然后执行:

./yourFile