我尝试通过键入来编译程序(假设这里我已进入目录)
clang++ file_name.cpp
。它编译并应该自动运行,但它没有,并且只是结束事件,并重新打开终端以进行输入。我在文件夹目录中看到一个名为“a.out”的文件。如果我输入
clang++ file_name.cpp
,什么也不会发生,我又回到了终端。如果我输入
clang++ a.out.cpp
,编译器会说找不到该文件,然后编译器关闭。我尝试查看 clang 是否已正确安装,确实如此。我不知道出了什么问题。
答案1
类似的编译器clang++
只编译源代码。在您的情况下,它会创建可执行文件a.out
(因为您没有明确告诉它使用该选项使用其他输出文件名-o
)。编译器不会自动运行生成的可执行文件。这些事情也适用于g++
(GNU C++ 编译器)以及clang
和gcc
C 编译器(以及大多数其他需要编译的语言的编译器)。
要运行可执行文件,请发出命令
./a.out
在 shell 的命令提示符处。
要给可执行文件指定一个不同于传统默认名称的名称a.out
,请使用类似的名称
clang++ -o myprog file_name.cpp
myprog
从 中的源创建file_name.cpp
。
给定单个文件中的源代码file_name.cpp
,make
还可以使用file_name
以下命令将源代码编译为可执行文件
make file_name
file_name
与源代码文件位于同一目录中(但前提是源代码自上次编译以来已更新)。这不需要Makefile
存在,而是使用内置的隐式规则make
来编译 C++ 源代码。
使用
CXX=clang++ make file_name
显式使用clang++
编译器。
有关这方面的更多信息,请参阅make
有关的 GNU 文档隐含规则( 的其他实现make
,例如在 BSD 系统上,使用类似的隐式规则)。