如何在 Unix 控制台或 Mac 终端中编译和运行 C/C + + 代码?

如何在 Unix 控制台或 Mac 终端中编译/运行 C 或 C + + 代码?

610672 次浏览

假设路径中没有工作目录,那么语法就是 ./[name of the program]

例如 ./a.out

gcc main.cpp -o main.out
./main.out

添加以下内容以获得最佳警告,您将不会后悔。如果可以,使用 WISE (警告就是错误)编译。

- Wall -pedantic -Weffc++ -Werror

使用 makefile。即使对于非常小的(= 一个文件)项目,这种努力也可能是值得的,因为您可以使用几组编译器设置来测试东西。通过这种方式,调试和部署工作要容易得多。

读读 make手册。乍一看,它似乎相当长,但大多数部分你可以只是浏览。总而言之,它花了我几个小时,让我更有效率。

如果它是一个简单的单源程序,

make foo

其中源文件是 Fo.cFoo.cpp等等,您甚至不需要 makefile。Make 具有足够的内置规则,可以将源文件构建到相同名称的可执行文件中(除去扩展名)。

运行刚刚构建的可执行文件和运行任何程序是一样的——但是你通常需要指定可执行文件的路径,因为 shell 只搜索 $PATH中的内容来查找可执行文件,而且通常不包括工作目录(.)。

因此,要运行构建的可执行 foo:

./foo

在 Unix (Linux,Mac OS x,AIX 等)环境中,所有应用程序的执行都取决于可执行的搜索路径。

您可以使用以下命令在终端中显示此路径:

Echo $PATH

在 Mac OS X 上(默认情况下) ,这将显示以下冒号分隔的搜索路径:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

因此,列出的目录中的任何可执行文件只需键入其名称即可运行。例如:

Cat mytextfile.txt

这将运行 /bin/cat并向终端显示 mytextfile.txt。

若要运行不在可执行搜索路径中的任何其他命令,需要限定可执行文件的路径。假设我在 Mac OS X 的主目录中有一个名为 MyProgram 的可执行文件,我可以这样对它进行完全限定:

/用户/奥利弗/我的程序

如果您所在的位置靠近您希望执行的程序,则可以使用部分路径限定该名称。例如,如果 MyProgram在目录 /Users/oliver/MyProject I 中,而我在主目录中,我可以像这样限定可执行文件的名称,并让它执行:

MyProject/MyProgram

或者假设我在目录 /Users/oliver/MyProject2中,我想执行 /Users/oliver/MyProject/MyProgram,我可以使用这样的相对路径来执行它:

. ./MyProject/MyProgram

类似地,如果我在与 MyProgram相同的目录中,我需要使用一个“工作目录”相对路径。你所在的工作目录是句号后面跟一个斜杠。例如:

./MyProgram

要确定当前所在的目录,请使用 pwd命令。

如果你经常把程序放在你的硬盘上的一个地方,你希望运行而不必限定他们的名字。例如,如果您的主目录中有一个“ bin”目录,用于定期使用的其他程序的 shell 脚本,那么更改您的可执行搜索路径可能是明智的。

这可以通过在您的主目录中创建或编辑现有的 .bash_profile文件并添加以下行来轻松实现:

#!/bin/sh
export PATH=$PATH:~/bin

在这里,波浪(~)字符被用作/Users/Oliver 的快捷方式。还要注意,hash bang (# !)Line 需要成为文件的第一行(如果它不存在的话)。还要注意,这种技术要求您的登录 shell 是 bash (Mac OS X 和大多数 Linux 发行版的默认设置)。还要注意的是,如果您希望在 ~/bin中安装的程序优先于系统可执行程序使用,那么您应该重新排序导出语句,如下所示:

export PATH=~/bin:$PATH

这个命令在所有 Unix 机器上都可以使用... ... 我在 Linux/Ubuntu 上使用它,但它在 OS X 上也可以使用。在 终结者应用程序中键入以下命令。

g++ -o lab21 iterative.cpp

-o是字母 O 不是0

lab21将是您的可执行文件

iterative.cpp是您的 C + + 文件

运行该命令后,在终端中键入以下内容以运行程序:

./lab21

我发现这个链接的说明:

Http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs-on-mac-os-x/

基本上是这样的:

gcc hello.c
./a.out (or with the output file of the first command)

所有这些都在“终端”中完成。

要使用 G + + 编译器,您需要这样做:

  1. 导航到存储 * . cpp 文件的目录。

    cd ~/programs/myprograms/ (~ 是你家的一个快捷方式,比如/Users/Ryan/program/myprogram/,用你实际使用的位置替换。)

  2. 编译一下

    g++ input.cpp -o output.bin(输出,本可以是任何扩展名,真的

    如果成功的话,应该返回 没什么,那就是 好吧。一般来说,如果失败的话,你会得到返回值。

    但是,如果键入 ls,您将看到同一目录中的文件列表。例如,您将看到其他文件夹 Input.cpp输出,本

  3. 从目录内部,现在用 ./outbut.bin执行它

对我来说有两个步骤:

第一:

make foo

然后:

./foo

要做到这一点,一个简洁的方法可以是:

make foo && ./$_

拥有一行程序很好,这样您就可以轻松地重新运行可执行文件。

使用终端运行.c 文件需要两个步骤。 第一步是在终端中键入 gcc 并删除。C 文件到终端,然后按 Enter:

gcc /Desktop/test.c

在第二步中,运行以下命令:

~/a.out

要编译 C 或 C + + 程序,有一个常见的命令:

  1. make filename

  2. ./filename

Make 将把源文件构建成具有相同名称的可执行文件。但是如果您想使用标准的方法,您可以使用 gcc编译器来构建 C 程序,并使用 g++来构建 C + + 。

C:

gcc filename.c


./a.out

对于 C + + :

g++ filename.cpp


./a.out

只需在. c/. cpp 文件所在的目录中输入。

用于编译和运行 C 代码。

gcc filename.c
./a.out filename.c

用于编译和运行 C + + 代码。

g++ filename.cpp
./a.out filename.cpp

要在 Mac 终端上编译和运行 C + + 源代码,需要执行以下操作:

  1. 如果. cpp 文件的路径是 somPath/fileName.cpp,那么首先访问带有 path somPath 的目录
  2. 要编译 Cpp,输入 c++ fileName.cpp -o fileName
  3. 要运行该程序,请键入 ./fileName

对于运行 C + + 文件,运行以下命令,假设文件名为“ main.cpp”。

  1. 从 C + + 文件编译成一个目标文件。

    g++ -c main.cpp -o main.o
    
  2. 由于在 macOS 上不支持 #include <conio.h>,我们应该使用 Mac 上支持的替代方案。这是 #include <curses.h>。现在需要将目标文件转换为可执行文件。要使用文件 诅咒,我们必须使用库 -lcurses

    g++ -o main main.o -lcurses
    
  3. 现在运行可执行文件。

    ./main
    

您需要进入保存文件的文件夹。 编译代码: gcc fileName 您也可以使用 g++ fileName 这将编译您的代码并创建一个二进制文件。 现在查找同一文件夹中的二进制文件并运行它。

步骤1-使用下面的命令创建一个 cpp 文件

touch test.cpp

步骤2-运行此命令

g++ test.cpp

步骤3-运行 cpp 文件

./a.out

我在一个新的 MacBook Pro苹果 M1 Pro芯片。我已经安装了我的 Xcode-IDE 和命令行工具。对我来说是这样的:

g++ one.cpp -o one


./one