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 ++コンパイラとCclangコンパイラgcc(そしてコンパイルが必要な他のほとんどの言語用コンパイラ)にも当てはまります。

実行可能ファイルを実行するには、次のコマンドを実行します。

./a.out

シェルコマンドプロンプトで。

実行可能ファイルに既存のデフォルト名以外の名前を指定するには、a.out次のように使用します。

clang++ -o myprog file_name.cpp

myprogソースから作成されましたfile_name.cpp


ソースコードが単一のファイルとして提供されている場合は、以下をfile_name.cpp使用してソースコードを実行可能ファイルにコンパイルするmakeこともできます。file_name

make file_name

file_nameソースコードファイルと同じディレクトリにあります(ただし、最後のコンパイル以降にソースコードが更新された場合のみ)。必ずしもMakefile存在する必要はありませんが、組み込みの暗黙的な規則がmakeC ++ソースコードをコンパイルするために使用されます。

使用

CXX=clang++ make file_name

clang++明示的にコンパイラを使用してください。

これについて詳しくは、make関連するGNUドキュメントを参照してください。暗黙のルールmake(BSDシステムなどの他の実装では、同様の暗黙の規則を使用します。)

おすすめ記事