【问题标题】:Cannot Execute File in Terminal OSX无法在终端 OSX 中执行文件
【发布时间】:2012-12-07 21:46:28
【问题描述】:

我可以使用g++ -Wall -c pa1.cpp -o pa1 在 OSX 终端中运行编译。这会创建pa1,所以我知道我的编译在终端中工作,但我在执行时遇到问题。我试过./pa1./a.outpa1 和其他一些。我相信问题出在 Xcode 上,但我的代码将在终端中编译并创建可执行文件这一事实让我不确定。想,在重新安装 Xcode 之前,我会在这里征求建议。

【问题讨论】:

  • -c 选项阻止链接器运行,因此输出文件将是目标文件,而不是可执行文件。

标签: xcode macos terminal executable


【解决方案1】:

使用g++ pa1.cpp -o pa1,然后您将能够以./pa1 运行您的新可执行文件。这要求您的整个程序都在pa1.cpp 中。如果它分布在多个文件中,则必须在命令行中列出所有文件。

正如 cmets 中所说,-c 选项表示编译,即。创建一个可以传递给链接器以构建可执行文件的目标文件。如果不使用此选项,g++ 将首先编译任何源文件,然后在所有目标文件上调用链接器以默认创建名为 a.out 的可执行文件(名称来自历史原因)。

通过使用file util,您可以看到命令的输出不是可执行二进制文件,而是中间目标文件。

【讨论】:

  • 我完全忘记了“如果它分布在多个文件中,则必须在命令行中列出所有文件。”非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-14
  • 2015-06-27
  • 2018-11-06
  • 2016-12-26
  • 2017-01-06
相关资源
最近更新 更多