无法在终端OSX中执行文件

时间:2012-12-07 21:46:29

标签: xcode macos terminal executable

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

1 个答案:

答案 0 :(得分:1)

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

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

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