Clang++ 编译,但不运行

Clang++ 编译,但不运行

我尝试通过键入来编译程序(假设这里我已进入目录) clang++ file_name.cpp。它编译并应该自动运行,但它没有,并且只是结束事件,并重新打开终端以进行输入。我在文件夹目录中看到一个名为“a.out”的文件。如果我输入 clang++ file_name.cpp,什么也不会发生,我又回到了终端。如果我输入 clang++ a.out.cpp,编译器会说找不到该文件,然后编译器关闭。我尝试查看 clang 是否已正确安装,确实如此。我不知道出了什么问题。

答案1

类似的编译器clang++只编译源代码。在您的情况下,它会创建可执行文件a.out(因为您没有明确告诉它使用该选项使用其他输出文件名-o)。编译器不会自动运行生成的可执行文件。这些事情也适用于g++(GNU C++ 编译器)以及clanggccC 编译器(以及大多数其他需要编译的语言的编译器)。

要运行可执行文件,请发出命令

./a.out

在 shell 的命令提示符处。

要给可执行文件指定一个不同于传统默认名称的名称a.out,请使用类似的名称

clang++ -o myprog file_name.cpp

myprog从 中的源创建file_name.cpp


给定单个文件中的源代码file_name.cppmake还可以使用file_name以下命令将源代码编译为可执行文件

make file_name

file_name与源代码文件位于同一目录中(但前提是源代码自上次编译以来已更新)。这不需要Makefile存在,而是使用内置的隐式规则make来编译 C++ 源代码。

使用

CXX=clang++ make file_name

显式使用clang++编译器。

有关这方面的更多信息,请参阅make有关的 GNU 文档隐含规则( 的其他实现make,例如在 BSD 系统上,使用类似的隐式规则)。

相关内容