2

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

4

1 回答 1

1

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

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

你可以看到你的命令的输出不是一个可执行的二进制文件,而是一个中间目标文件,通过使用fileutil.

于 2012-12-07T22:11:55.640 回答