Answers:
如果它是一个简单的单一源程序:
make foo
源文件是foo.c或foo.cpp等。
您甚至不需要makefile。Make具有足够的内置规则,可将您的源文件构建为具有相同名称(减去扩展名)的可执行文件。
运行刚刚构建的可执行文件与运行任何程序相同-但是您通常需要指定可执行文件的路径,因为外壳程序只会搜索其中的内容$PATH
以查找可执行文件,并且通常不包含当前目录(.
)。
因此,要运行生成的可执行文件foo
:
./foo
make main.cpp
,但是make main
。
gcc main.cpp -o main.out
./main.out
Undefined symbols for architecture x86_64
问题,我将命令修改如下:gcc -lstdc++ main.cpp -o main.out
,并且在Mac上也可以使用。通过链接:stackoverflow.com/questions/11852568/…–
这是在所有Unix机器上都可以使用的命令...我在Linux / Ubuntu上使用它,但在OS X上也可以使用。在Terminal.app中键入以下命令。
$ g++ -o lab21 iterative.cpp
-o
字母O不为零
lab21
将是您的可执行文件
iterative.cpp
是您的C ++文件
运行该命令后,在终端中键入以下内容以运行程序:
$ ./lab21
在Unix(Linux,Mac OS X,AIX等)环境中,所有应用程序的执行都取决于可执行文件的搜索路径。
您可以使用以下命令在终端中显示此路径:
回声$ PATH
在Mac OS X上(默认情况下),它将显示以下用冒号分隔的搜索路径:
/ usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin:/ usr / X11 / bin
因此,列出的目录中的任何可执行文件都可以通过键入名称来运行。例如:
猫mytextfile.txt
这将运行/bin/cat
并将mytextfile.txt显示到终端。
要运行不在可执行文件搜索路径中的任何其他命令,要求您限定可执行文件的路径。假设我在Mac OS XI的主目录中有一个名为MyProgram的可执行文件,可以像这样完全限定它:
/ Users / oliver / MyProgram
如果您位于希望执行的程序附近,则可以使用部分路径来限定名称。例如,如果MyProgram
位于目录/Users/oliver/MyProject
I中,而我位于主目录中,则可以这样定义可执行文件名称,并使其执行:
我的项目/我的程序
或者说我在目录中/Users/oliver/MyProject2
并且想要执行,/Users/oliver/MyProject/MyProgram
我可以使用这样的相对路径来执行它:
../MyProject/MyProgram
同样,如果我与MyProgram
我需要使用“当前目录”相对路径位于同一目录中。您当前所在的目录是句点字符,后跟斜杠。例如:
./MyProgram
要确定您当前正在使用哪个目录,请使用pwd
命令。
如果通常将程序放在硬盘上您希望运行的位置,而不必限定其名称。例如,如果您的主目录中有一个“ bin”目录,用于存放其他程序的定期使用的shell脚本,那么更改可执行搜索路径可能是明智的。
通过.bash_profile
在主目录中创建或编辑现有文件并添加以下行,可以轻松实现此目的:
#!/bin/sh
export PATH=$PATH:~/bin
在这里,代字号(〜)用作/ Users / oliver的快捷方式。另请注意,哈希爆炸(#!)行必须是文件的第一行(如果尚不存在)。还要注意,此技术要求您的登录外壳为bash(Mac OS X和大多数Linux发行版的默认外壳)。还请注意,如果您希望安装的程序~/bin
优先于系统可执行文件使用,则应按以下方式对导出语句重新排序:
export PATH=~/bin:$PATH
瑞安,我将其更改为答案而不是评论,因为看来我太简短了。在“终端”中执行所有这些操作。
要使用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
要编译C或C ++程序,有一个通用命令:
make filename
./filename
make会将您的源文件构建为具有相同名称的可执行文件。但是,如果您要使用标准方式,则可以使用gcc编译器来构建C程序和g ++ for c ++
对于C:
gcc filename.c
./a.out
对于C ++:
g++ filename.cpp
./a.out
我发现此链接与指示:
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)
gcc hello.c -o a.out
吗?与的功能相同gcc hello.c
。
只需输入c / cpp文件所在的目录即可。
用于编译和运行c代码。
$gcc filename.c
$./a.out filename.c
用于编译和运行c ++代码。
$g++ filename.cpp
$./a.out filename.cpp
“ $”是默认的mac终端符号
使用终端运行.C文件是一个两步过程。第一步是在终端中键入gcc并将.C文件拖放到终端,然后按Enter:
username$ gcc /Desktop/test.c
在第二步中,运行以下命令:
username$ ~/a.out