当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在Unix控制台/Mac终端中编译和运行C/C++?》经验,为你挑选了10个好方法。

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

(我知道,忘掉它,然后重新学习它.是时候把它写下来了.)



1> camh..:

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

make foo

源文件是foo.c或foo.cpp等.

你甚至不需要makefile.Make有足够的内置规则将源文件构建为同名的可执行文件,减去扩展名.

运行刚才构建的可执行文件与运行任何程序相同 - 但是您通常需要指定可执行文件的路径,因为shell只搜索$PATH查找可执行文件的内容,并且通常不包括当前目录(.).

所以要运行构建的可执行文件foo:

./foo


它不是`make main.cpp`,而是`make main`.
'对于main.cpp没什么可做的'

2> Andrey Never..:
gcc main.cpp -o main.out  
./main.out


作为一个菜鸟我因为在执行时不包括"./"而感到非常悲伤
我用"gcc main.cpp -o main.out",得到这个错误,架构x86_64的未定义符号:"std :: __ 1 :: locale :: use_facet(std :: __ 1 :: locale :: id&)const" ,...原因是,gcc default-links是libc.而使用g ++将链接libstdc ++.所以使用"g ++ main.cpp -o main.out"可能会更好.
@ funk-shun我希望你的评论是谷歌搜索这种事情的最佳结果 - 带我永远想出来(对于我的mac) - 谢谢!

3> Komengem..:

这是适用于所有Unix机器的命令......我在Linux/Ubuntu上使用它,但它也适用于OS X. 在Terminal.app中键入以下命令.

$ g++ -o lab21 iterative.cpp

-o 字母O不是零

lab21 将是你的可执行文件

iterative.cpp 是你的c ++文件

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

$ ./lab21



4> Victor Augus..:

对我来说有两个步骤:

第一:

make foo

然后:

./foo


没有./foo没有被执行,谢谢

5> orj..:

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 XI上的主目录中有一个名为MyProgram的可执行文件可以像这样完全限定它:

/用户/奥利弗/ MyProgram

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

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(#!)行需要是文件的第一行(如果它尚不存在).另请注意,此技术要求您的登录shell为bash(Mac OS X和大多数Linux发行版的默认设置).另请注意,如果您希望安装的程序~/bin优先于系统可执行文件使用,则应按如下方式重新排序export语句:

export PATH=~/bin:$PATH



6> nerdwaller..:

瑞安,我正在改变这个问题而不是评论,因为看起来我太简短了.在"终端"中做所有这些.

要使用G ++编译器,您需要执行以下操作:

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

    cd ~/programs/myprograms/
    (〜是您家的快捷方式,即/ Users/Ryan/programs/myprograms /,替换为您实际使用的位置.)

    编译它

    g++ input.cpp -o output.bin (output.bin可以是任何具有任何扩展名的东西,真的.bin在unix上很常见.)

    如果成功,应该返回NOTHING,这没关系.通常你会得到失败的回报.

    但是,如果键入ls,您将在同一目录中看到文件列表.例如,您将看到其他文件夹,input.cpp和output.bin

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



7> P-A..:

假设当前目录不在路径中,则语法为./[name of the program].

例如 ./a.out


对你有益!点和斜线是因为在许多系统上,当前目录(Unix术语中的".")不是shell搜索的路径的一部分.因此,添加它可以明确您要运行的程序.

8> Nazgob..:

添加以下内容以获得最佳警告,您不会后悔.如果可以的话,编译WISE(警告是错误的)

- Wall -pedantic -Weffc++ -Werror



9> markthethoma..:

这样做的紧凑方式可能是:

make foo && ./$_

很高兴有一个单行,所以你可以轻松地重新运行你的可执行文件.



10> 小智..:

要编译C或C ++程序,有一个通用命令:

    make filename

    ./filename

make会将您的源文件构建为具有相同名称的可执行文件。但是,如果您要使用标准方式,则可以使用gcc编译器来构建C程序和g ++ for c ++

对于C:

gcc filename.c

./a.out

对于C ++:

g++ filename.cpp

./a.out

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有