【问题标题】:Compiling simple Hello World program on OS X via command line通过命令行在 OS X 上编译简单的 Hello World 程序
【发布时间】: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 吗?

【问题讨论】:

  • “没有成功”并不能真正帮助任何人诊断您的问题。

标签: c++ xcode macos


【解决方案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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-07-13
            • 2015-04-18
            • 2016-03-02
            • 1970-01-01
            • 2021-12-07
            相关资源
            最近更新 更多