Closed7

競プロでclangdを使いたい

hotate29hotate29
  • 競プロ用途
  • VSCode
  • コンパイラはGCCだが、要はbits/stdc++.hを使いたい
  • コードを書くファイルがころころ変わる(ただし同じフォルダの同じ階層)
hotate29hotate29

1時間ほど格闘した末、CompileFlags -> Addに--target=x86_64-w64-windows-gnuを追加したら動作するようになった。ようわからんけど動いているからヨシ!

https://github.com/clangd/clangd/issues/537

これを読んでいて、このような記述をしている人がいたので試しにやってみたもの。

hotate29hotate29

完成品

.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

hotate29hotate29

.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

このスクラップは2024/05/10にクローズされました