如何在Unix控制台/ Macterminal中运行C / C ++?
如何在Unix控制台或Macterminal中运行C或C ++?
(我知道了,忘记了,重新学习了,现在写下来。)
如果这是一个简单的单一源程序:
make foo 源文件是foo.c或foo.cpp等
你甚至不需要一个makefile。 Make有足够的内置规则来将源文件构build成相同名称的可执行文件,然后减去扩展名。
 gcc main.cpp -o main.out ./main.out 
这是在所有Unix机器上运行的命令…我在Linux / Ubuntu上使用它,但是它也可以在OS X上运行。 在Terminal.app中键入以下命令。
 $ g++ -o lab21 iterative.cpp 
  -o是字母O不是零 
  lab21将是您的可执行文件 
  iterative.cpp是你的c ++文件 
运行该命令后,在terminal中键入以下命令来运行程序:
 $ ./lab21 
对我来说两个步骤:
第一:
 make foo 
然后:
 ./foo 
在Unix(Linux,Mac OS X,AIX等)环境中执行的所有应用程序都依赖于可执行文件的searchpath。
您可以使用以下命令在terminal中显示此path:
echo $ PATH
在Mac OS X上(默认),这将显示以下以冒号分隔的searchpath:
在/ usr / bin中:/ bin中:/ usr / sbin目录:/ sbin目录:在/ usr / local / bin目录:在/ usr / X11 / bin中
因此,列出的目录中的任何可执行文件都可以通过input其名称来运行。 例如:
cat mytextfile.txt
 这将运行/bin/cat并显示mytextfile.txt到terminal。 
要运行任何其他不在可执行文件searchpath中的命令,都要求您限定可执行文件的path。 所以说,我有一个名为MyProgram的可执行文件在我的主目录Mac OS X可以完全限定它像这样:
/用户/奥利弗/ MyProgram
 如果您位于您希望执行的程序附近的位置,则可以使用部分path来限定该名称。 例如,如果MyProgram位于/Users/oliver/MyProject目录中,而且我位于我的主目录中,则可以像这样限定可执行文件的名称,并执行它: 
MyProject的/ MyProgram
 或者说我在/Users/oliver/MyProject2目录下,并且想要执行/Users/oliver/MyProject/MyProgram我可以使用这样的相对path来执行它: 
../MyProject/MyProgram
 同样,如果我在与MyProgram相同的目录中,我需要使用“当前目录”相对path。 您所在的当前目录是后跟斜杠的句点字符。 例如: 
./MyProgram
 要确定您当前正在使用pwd命令的目录。 
如果您通常将程序放在您希望运行的硬盘上,而不必限定其名称。 例如,如果您的主目录中有一个“bin”目录用于其他程序的常规shell脚本,那么更改可执行文件searchpath可能是明智之举。
 这可以通过创build或编辑您的主目录中现有的.bash_profile文件并添加行来轻松完成: 
 #!/bin/sh export PATH=$PATH:~/bin 
 这里代字符(〜)字符被用作/ Users / oliver的快捷方式。 还要注意,hash bang(#!)行必须是文件的第一行(如果它不存在的话)。 还要注意,这个技术要求你的loginshell是bash(在Mac OS X和大多数Linux发行版上是默认的)。 还要注意,如果你希望你的程序安装在~/bin ,而不是系统可执行文件,你应该按如下方式重新sortingexport语句: 
 export PATH=~/bin:$PATH 
瑞恩,我正在改变这个答案而不是评论,因为看起来我太简单了。 在“terminal”做所有这些。
要使用G ++编译器,你需要这样做:
- 
导航到您存储* .cpp文件的目录。 cd ~/programs/myprograms/
 (〜是你家的快捷方式,即/ Users / Ryan / programs / myprograms /,取而代之的是你实际使用的位置。)
- 
编译它 g++ input.cpp -o output.bin(output.bin可以是任何具有扩展名的东西,真的,bin在unix上是很常见的。)如果成功,应该没有任何回报,那没关系 。 一般来说,你会得到失败的回报 但是,如果键入 ls,则会在同一目录中看到文件列表。 例如,您将看到其他文件夹input.cpp和output.bin
- 
从目录中,现在执行 ./outbut.bin
 假设当前目录不在path中,语法是./[name of the program] 。 
 例如./a.out 
添加以下来获得最好的警告,你不会后悔的。 如果可以的话,编译WISE(警告是错误的)
 - Wall -pedantic -Weffc++ -Werror 
一个紧凑的方法可以这样做:
 make foo && ./$_ 
很高兴有一个单线程,所以你可以轻松地重新运行你的可执行文件。
 使用makefile 。 即使对于非常小的(单个文件)项目,也可能是值得的,因为可以有多组编译器设置来testing。 这种debugging和部署工作更容易。 
 阅读make手册 ,乍一看似乎很长,但大部分部分可以略过。 总而言之,我花了几个小时,让我的工作更有成效。 
我发现这个链接的方向:
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) 
使用terminal运行.C文件是一个两步过程。 第一步是在terminal中键入gcc,并将.C文件放到terminal,然后按Enter键 :
 username$ gcc /Desktop/test.c 
在第二步中,运行以下命令:
 username$ ~/a.out