/bin/sh: clang++: コマンドが見つかりません

/bin/sh: clang++: コマンドが見つかりません

私はDebian 5を使用しています。 GNを作っています。提供された指示に従いました。ここ。次のコマンドを実行しています。

git clone https://gn.googlesource.com/gn
cd gn
python build/gen.py
ninja -C out

実行すると、ninja -C out/次のメッセージが表示されます。

ninja: Entering directory `out/'   
[1/238] CXX tools/gn/input_file.o  
FAILED: tools/gn/input_file.o   
clang++ -MMD -MF tools/gn/input_file.o.d  -I/home/us/WebRTCBuild/gn -I/home/us/WebRTCBuild/gn/out -DNDEBUG -O3 -fdata-sections -ffunction-sections -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -pthread -pipe -fno-exceptions -fno-rtti -fdiagnostics-color -std=c++14 -Wno-c++11-narrowing -c /home/us/WebRTCBuild/gn/tools/gn/input_file.cc -o tools/gn/input_file.o    
/bin/sh: clang++: command not found
[2/238] CXX base/callback_internal.o     
FAILED: base/callback_internal.o    
clang++ -MMD -MF base/callback_internal.o.d  -I/home/us/WebRTCBuild/gn -I/home/us/WebRTCBuild/gn/out -DNDEBUG -O3 -fdata-sections -ffunction-sections -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -pthread -pipe -fno-exceptions -fno-rtti -fdiagnostics-color -std=c++14 -Wno-c++11-narrowing -c /home/us/WebRTCBuild/gn/base/callback_internal.cc -o  
base/callback_internal.o       
/bin/sh: clang++: command not found        
ninja: build stopped: subcommand failed.  

このメッセージに示されている問題を理解する限り:

/bin/sh: clang++: コマンドが見つかりません

llvmをインストールしました。しかし、それはうまくいきませんでした。私はまた、これがg ++の欠落によって引き起こされる可能性があることを読んだ。しかし、g++がインストールされています。

結果echo $PATH:

/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/gcc49/bin

答え1

しかし、レニーバックアーカイブ今は動作しません。ファイル/usr/bin/clang++はい提供:これその音Debian 8 Jessieのパッケージ。これLLVMパッケージは依存しませんその音このようにカプセル化その音インストールできない場合があります。を使ってインストールしてみてください sudo apt install clang。それでもうまくいかない場合は、実行してecho $PATH結果を投稿できますか?

答え2

私も同じ問題がありましたが、次のようにパスを修正して解決しました。

export PATH=$PATH:/usr/bin/clang-11:/usr/bin/clang++-11

11を使用しているバージョンに変更できます。これにより、binでコマンドを見つけることができます。ほとんどの場合、sudo apt-get installを使用すると、これは自動的に行われるように見えますが、必ずしもそうではありません。

答え3

私はclangコンパイラを使用しないことでこの問題を解決しました。build/gen.pyコンパイラを設定するオプションがあることがわかりました。デフォルトはクランです。だからbuild/gen.py下からこの部分を変更しました。

def WriteGNNinja(path, platform, host, options): if platform.is_msvc(): cc = os.environ.get('CC', 'cl.exe') cxx = os.environ.get('CXX', 'cl.exe') ld = os.environ.get('LD', 'link.exe') ar = os.environ.get('AR', 'lib.exe') elif platform.is_aix(): cc = os.environ.get('CC', 'gcc') cxx = os.environ.get('CXX', 'g++') ld = os.environ.get('LD', 'g++') ar = os.environ.get('AR', 'ar -X64') else: cc = os.environ.get('CC', 'clang') cxx = os.environ.get('CXX', 'clang++') ld = cxx ar = os.environ.get('AR', 'ar')

私は次の行を変更しました。

cc = os.environ.get('CC', 'clang') cxx = os.environ.get('CXX', 'clang++') ld = cxx ar = os.environ.get('AR', 'ar')

これに関して:

cc = os.environ.get('CC', 'gcc') cxx = os.environ.get('CXX', 'gcc') ld = cxx ar = os.environ.get('AR', 'gcc')

これで実行中にエラーが発生しますninja -C outが、これはコードのコンパイルに関連しています。問題/bin/sh: clang++: コマンドが見つかりません解決済み

関連情報