首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clang++编译,但不运行

Clang++编译,但不运行
EN

Unix & Linux用户
提问于 2019-10-22 13:24:03
回答 1查看 1.4K关注 0票数 0

我试图通过键入clang++ file_name.cpp来编译程序(假设这里我是cd的目录)。它编译并应该自动运行,但它没有,它只是结束事件,并打开终端返回输入。我在文件夹目录中看到一个名为“a.out”的文件。如果我输入clang++ file_name.cpp,什么都不会发生,我又回到了终端机。如果我输入clang++ a.out.cpp,编译器说它找不到文件,编译器就会关闭。我试着看看clang是否安装正确,而且它确实安装好了。我不知道怎么回事。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-10-22 15:06:56

clang++这样的编译器只编译源代码。在您的示例中,它创建可执行文件a.out (因为您没有显式地告诉它使用其他输出文件名使用-o选项)。编译器不会自动运行生成的可执行文件。对于g++ ( GNU C++编译器)以及clanggcc C编译器(以及大多数其他需要编译的语言编译器),也是如此。

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

代码语言:javascript
复制
./a.out

在shell的命令提示符下。

若要为可执行文件赋予比传统默认的a.out更多的名称,请使用以下内容

代码语言:javascript
复制
clang++ -o myprog file_name.cpp

要从myprog中的源创建file_name.cpp,请执行以下操作。

给定单个文件file_name.cpp中的源,还可以使用make命令将源代码编译到可执行的file_name中。

代码语言:javascript
复制
make file_name

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

使用

代码语言:javascript
复制
CXX=clang++ make file_name

若要显式使用clang++编译器,请执行以下操作。

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

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/548122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档