Closed7
競プロでclangdを使いたい
![hotate29](https://res.cloudinary.com/zenn/image/fetch/s--rEfKYbOU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/277f23da13.jpeg)
- 競プロ用途
- VSCode
- コンパイラはGCCだが、要はbits/stdc++.hを使いたい
- コードを書くファイルがころころ変わる(ただし同じフォルダの同じ階層)
![hotate29](https://res.cloudinary.com/zenn/image/fetch/s--rEfKYbOU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/277f23da13.jpeg)
compile_flags.txtを書くと使えるが、これだと当然ながらclangを使うので、bits/stdc++.hを使えない。GCCの標準ライブラリを認識させる方法はそもそもあるのか?
追記: これは認識が間違っている
![hotate29](https://res.cloudinary.com/zenn/image/fetch/s--rEfKYbOU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/277f23da13.jpeg)
これを参考に、.clangdのCompileFlags -> Addにgcc -v -c -xc++ nul
で表示されたinclude Pathを追加したが、動かない。本来はこれで動くはずだが...
![hotate29](https://res.cloudinary.com/zenn/image/fetch/s--rEfKYbOU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/277f23da13.jpeg)
1時間ほど格闘した末、CompileFlags -> Addに--target=x86_64-w64-windows-gnu
を追加したら動作するようになった。ようわからんけど動いているからヨシ!
これを読んでいて、このような記述をしている人がいたので試しにやってみたもの。
![hotate29](https://res.cloudinary.com/zenn/image/fetch/s--rEfKYbOU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/277f23da13.jpeg)
完成品
.clangd
If:
PathMatch: .*
CompileFlags:
Add:
- --target=x86_64-w64-windows-gnu
- -isystemH:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../include/c++/13.2.0
- -isystemH:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../include/c++/13.2.0/x86_64-w64-mingw32
- -isystemH:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../include/c++/13.2.0/backward
- -isystemH:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include
- -isystemH:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../include
- -isystemH:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include-fixed
- -I./ac-library/
- -std=gnu++20
![hotate29](https://res.cloudinary.com/zenn/image/fetch/s--rEfKYbOU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/277f23da13.jpeg)
しばらくこの状態で運用して、困ったらいろいろ書いていくかも。今日はこれでおわり
これは格闘しながらTwitterに放流していた鳴き声のツリーだが、ここに書いた以上の情報はあまりない。
![hotate29](https://res.cloudinary.com/zenn/image/fetch/s--rEfKYbOU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/277f23da13.jpeg)
.clangdで凝ったことをしていないので、compile_flags.txtにCompileFlags -> Addの部分を書き込むだけで事足りそう。
compile_flags.txt
--target=x86_64-w64-windows-gnu
-isystemH:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../include/c++/13.2.0
-isystemH:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../include/c++/13.2.0/x86_64-w64-mingw32
-isystemH:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../include/c++/13.2.0/backward
-isystemH:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include
-isystemH:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../include
-isystemH:/msys64/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/include-fixed
-I./ac-library/
-std=gnu++20
このスクラップは4ヶ月前にクローズされました