如何在 Unix 控制台或 Mac 终端中编译/运行 C 或 C + + 代码?
假设路径中没有工作目录,那么语法就是 ./[name of the program]。
./[name of the program]
例如 ./a.out
./a.out
gcc main.cpp -o main.out ./main.out
添加以下内容以获得最佳警告,您将不会后悔。如果可以,使用 WISE (警告就是错误)编译。
- Wall -pedantic -Weffc++ -Werror
使用 makefile。即使对于非常小的(= 一个文件)项目,这种努力也可能是值得的,因为您可以使用几组编译器设置来测试东西。通过这种方式,调试和部署工作要容易得多。
makefile
读读 make手册。乍一看,它似乎相当长,但大多数部分你可以只是浏览。总而言之,它花了我几个小时,让我更有效率。
make
如果它是一个简单的单源程序,
make foo
其中源文件是 Fo.c、 Foo.cpp等等,您甚至不需要 makefile。Make 具有足够的内置规则,可以将源文件构建到相同名称的可执行文件中(除去扩展名)。
运行刚刚构建的可执行文件和运行任何程序是一样的——但是你通常需要指定可执行文件的路径,因为 shell 只搜索 $PATH中的内容来查找可执行文件,而且通常不包括工作目录(.)。
$PATH
.
因此,要运行构建的可执行 foo:
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。
/bin/cat
若要运行不在可执行搜索路径中的任何其他命令,需要限定可执行文件的路径。假设我在 Mac OS X 的主目录中有一个名为 MyProgram 的可执行文件,我可以这样对它进行完全限定:
/用户/奥利弗/我的程序
如果您所在的位置靠近您希望执行的程序,则可以使用部分路径限定该名称。例如,如果 MyProgram在目录 /Users/oliver/MyProject I 中,而我在主目录中,我可以像这样限定可执行文件的名称,并让它执行:
MyProgram
/Users/oliver/MyProject
MyProject/MyProgram
或者假设我在目录 /Users/oliver/MyProject2中,我想执行 /Users/oliver/MyProject/MyProgram,我可以使用这样的相对路径来执行它:
/Users/oliver/MyProject2
/Users/oliver/MyProject/MyProgram
. ./MyProject/MyProgram
类似地,如果我在与 MyProgram相同的目录中,我需要使用一个“工作目录”相对路径。你所在的工作目录是句号后面跟一个斜杠。例如:
./MyProgram
要确定当前所在的目录,请使用 pwd命令。
pwd
如果你经常把程序放在你的硬盘上的一个地方,你希望运行而不必限定他们的名字。例如,如果您的主目录中有一个“ bin”目录,用于定期使用的其他程序的 shell 脚本,那么更改您的可执行搜索路径可能是明智的。
这可以通过在您的主目录中创建或编辑现有的 .bash_profile文件并添加以下行来轻松实现:
.bash_profile
#!/bin/sh export PATH=$PATH:~/bin
在这里,波浪(~)字符被用作/Users/Oliver 的快捷方式。还要注意,hash bang (# !)Line 需要成为文件的第一行(如果它不存在的话)。还要注意,这种技术要求您的登录 shell 是 bash (Mac OS X 和大多数 Linux 发行版的默认设置)。还要注意的是,如果您希望在 ~/bin中安装的程序优先于系统可执行程序使用,那么您应该重新排序导出语句,如下所示:
~/bin
export PATH=~/bin:$PATH
这个命令在所有 Unix 机器上都可以使用... ... 我在 Linux/Ubuntu 上使用它,但它在 OS X 上也可以使用。在 终结者应用程序中键入以下命令。
g++ -o lab21 iterative.cpp
-o是字母 O 不是0
-o
lab21将是您的可执行文件
lab21
iterative.cpp是您的 C + + 文件
iterative.cpp
运行该命令后,在终端中键入以下内容以运行程序:
./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 + + 编译器,您需要这样做:
导航到存储 * . cpp 文件的目录。
cd ~/programs/myprograms/ (~ 是你家的一个快捷方式,比如/Users/Ryan/program/myprogram/,用你实际使用的位置替换。)
cd ~/programs/myprograms/
编译一下
g++ input.cpp -o output.bin(输出,本可以是任何扩展名,真的
g++ input.cpp -o output.bin
如果成功的话,应该返回 没什么,那就是 好吧。一般来说,如果失败的话,你会得到返回值。
但是,如果键入 ls,您将看到同一目录中的文件列表。例如,您将看到其他文件夹 Input.cpp和 输出,本
ls
从目录内部,现在用 ./outbut.bin执行它
./outbut.bin
对我来说有两个步骤:
第一:
然后:
要做到这一点,一个简洁的方法可以是:
make foo && ./$_
拥有一行程序很好,这样您就可以轻松地重新运行可执行文件。
使用终端运行.c 文件需要两个步骤。 第一步是在终端中键入 gcc 并删除。C 文件到终端,然后按 Enter:
gcc /Desktop/test.c
在第二步中,运行以下命令:
~/a.out
要编译 C 或 C + + 程序,有一个常见的命令:
make filename
./filename
Make 将把源文件构建成具有相同名称的可执行文件。但是如果您想使用标准的方法,您可以使用 gcc编译器来构建 C 程序,并使用 g++来构建 C + + 。
gcc
g++
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 + + 源代码,需要执行以下操作:
c++ fileName.cpp -o fileName
./fileName
对于运行 C + + 文件,运行以下命令,假设文件名为“ main.cpp”。
从 C + + 文件编译成一个目标文件。
g++ -c main.cpp -o main.o
由于在 macOS 上不支持 #include <conio.h>,我们应该使用 Mac 上支持的替代方案。这是 #include <curses.h>。现在需要将目标文件转换为可执行文件。要使用文件 诅咒,我们必须使用库 -lcurses。
#include <conio.h>
#include <curses.h>
-lcurses
g++ -o main main.o -lcurses
现在运行可执行文件。
./main
您需要进入保存文件的文件夹。 编译代码: gcc fileName 您也可以使用 g++ fileName 这将编译您的代码并创建一个二进制文件。 现在查找同一文件夹中的二进制文件并运行它。
gcc fileName
g++ fileName
步骤1-使用下面的命令创建一个 cpp 文件
touch test.cpp
步骤2-运行此命令
g++ test.cpp
步骤3-运行 cpp 文件
我在一个新的 MacBook Pro与 苹果 M1 Pro芯片。我已经安装了我的 Xcode-IDE 和命令行工具。对我来说是这样的:
g++ one.cpp -o one ./one