通过命令行在 OS X 上编译简单的 Hello World 程序
Posted
技术标签:
【中文标题】通过命令行在 OS X 上编译简单的 Hello World 程序【英文标题】:Compiling simple Hello World program on OS X via command line 【发布时间】:2011-05-03 15:56:22 【问题描述】:我有一个简单的 hello world 示例,我正在尝试在 OS X 上编译,名为 hw.cpp
:
#include <iostream>
#include <string>
using namespace std;
int main()
cout << "Hello world!" << endl;
return 0;
我想使用gcc
编译它,但我没有成功。我还想听听其他选项,比如使用 Xcode 吗?
【问题讨论】:
“没有成功”并不能真正帮助任何人诊断您的问题。 【参考方案1】:试试
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;
【讨论】:
@math:return 0
隐含在 main 中。
@mathepic: 和 +1。在 C++ 中不需要它。如果main
到达函数末尾而没有返回,那么它会隐式返回 0。
啊,好吧。为了清楚起见,我仍然会使用它。
@mathepic:这是 1 个意见。我个人觉得不使用它更清楚。
为什么是a.out
?在 Windows 中,我希望看到 a.exe
。在 *nix 中我们不需要扩展。为什么使用 .out 而不是扩展名? a
也是一个奇怪的默认名称。【参考方案2】:
g++ hw.cpp -o hw
./hw
【讨论】:
在所有其他的中,这个对我来说效果很好。谢谢。 使用默认 g++ 设置在 mac 上为我工作。我必须传递 -o 文件参数。【参考方案3】:user@host> g++ hw.cpp
user@host> ./a.out
【讨论】:
【参考方案4】:用gcc
编译它需要你传递一些命令行选项。改为使用g++
编译它。
【讨论】:
【参考方案5】:此外,您可以使用 CLion (JetBrains) 之类的 IDE 或 Atom 之类的文本编辑器,以及 gpp-compiler 插件,就像一个魅力(F5 编译和执行)。
【讨论】:
【参考方案6】:新版本应该是这样的:
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)
@Rat-a-tat-a-tat 抱歉,我不记得了,是 3 年前。【参考方案7】:
您没有指定您看到的错误是什么。
问题是gcc
给您一个错误,还是您根本无法运行gcc
?
如果是后者,最可能的解释是你在安装开发工具的时候没有勾选“UNIX Development Support”,所以你的路径中没有安装命令行可执行文件。重新安装开发工具,并确保单击“自定义”并选中该框。
【讨论】:
【参考方案8】:对多个 .cpp 文件使用以下内容
g++ *.cpp
./a.out
【讨论】:
以上是关于通过命令行在 OS X 上编译简单的 Hello World 程序的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Mac OS X Mountain Lion 上编译 libnoise
如何使用 GCC-MP-4.7 在 OS X 上编译 ASL?