通过命令行在OS X上编译简单的Hello World程序


97

我有一个简单的hello world示例,尝试在OS X上进行编译,名为hw.cpp

#include <iostream>
#include <string>
using namespace std;
int main() {
  cout << "Hello world!" << endl;
  return 0;
}

我想使用进行编译gcc,但没有成功。我也想听听其他选项,例如使用Xcode吗?


7
“没有成功”并不能真正帮助任何人诊断您的问题。
加雷斯·戴维森

Answers:


182

尝试

g++ hw.cpp
./a.out

g++是GCC的C ++编译器前端。
gcc是GCC的C编译器前端。

是的,Xcode绝对是一个选择。它是在GCC之上构建的GUI IDE。

尽管我喜欢稍微冗长的方法:

#include <iostream>

int main()
{
    std::cout << "Hello world!" << std::endl;
}

17
@math:return 0在main中是隐式的。
fredoverflow

3
@mathepic:和+1。C ++中不需要它。如果main达到该功能没有碰到一个回报,然后它含蓄地返回0
马丁纽约

2
啊,好的。为了清楚起见,我仍将使用它。
替代

4
@mathepic:那是1条意见。我个人觉得不使用它更为清楚。
马丁·约克

1
为什么a.out呢 我希望在Windows中能看到a.exe。在* nix中,我们不需要扩展名。为什么在没有扩展名的情况下使用.out? a也是一个奇怪的默认名称。
P.Brian.Mackey 2015年




2

新版本应如下所示:

xcrun g++ hw.cpp
./a.out

这给了我ld: can't link with a main executable file './a.out' for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
2014年

@ Rat-a-tat-a-tat对不起,我不记得是在三年前。
Eddified

1

您没有指定所看到的错误是什么。

gcc给您一个错误的问题,还是根本无法运行gcc

如果是后者,则最有可能的解释是,安装开发工具时未选中“ UNIX开发支持”,因此命令行可执行文件未安装在您的路径中。重新安装开发工具,并确保单击“自定义”并选中该框。


1

此外,您可以使用带有gpp-compiler插件的IDE(如CLion(JetBrains))或文本编辑器(如Atom),就像超级按钮一样工作(F5进行编译和执行)。


1

将以下内容用于多个.cpp文件

g++ *.cpp
./a.out
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.