예전 버젼은 리눅스 커널, QEMU 같은 플젝도 compilation database 잘 만들어줬는데,
최신 버전은 마지막에 못 compile_commands.json 못 뱉고 그냥 뻗어버리네.
다행히 커널 소스 트리 내부적으로 사용하는 compilation database 생성기가 있어서, 이거 사용하면 될 듯하다만.
Build ear 오랬동안 애용했는데, 이젠 써먹기 힘들겠다.
예전 버젼은 리눅스 커널, QEMU 같은 플젝도 compilation database 잘 만들어줬는데,
최신 버전은 마지막에 못 compile_commands.json 못 뱉고 그냥 뻗어버리네.
다행히 커널 소스 트리 내부적으로 사용하는 compilation database 생성기가 있어서, 이거 사용하면 될 듯하다만.
Build ear 오랬동안 애용했는데, 이젠 써먹기 힘들겠다.
리눅스 커널이 compilation database 기능이 있었다고? clangd 적용 가능하냐
https://kernel.googlesource.com/pub/scm/linux/kernel/git/joel/fsi/+/refs/heads/next/scripts/gen_compile_commands.py
clangd는 안 써서 모르겠고, ccls는 잘 동작함
저거 사용법이 머임? 커널 소스 가서 gen_compile_commands make -j$(nproc) 하면 되나
일단 빌드해서 vmlinux 만든 다음, linux 탑 디렉토리에서 ./scripts/clang-tools/gen_compile_commands 실행하면 됨
꼭 탑 디렉토리여야하는 지는 모르겠음
커널 모듈도 마찬가지 방법으로 가능한가 굳이 그 경로에 gen 놔두지 않고 그냥 bin 으로 옮겨도 상관없을 것 같은디 대충 검색해보니 .cmd 에 모든 정보가 있어서 그걸 쓰는 방식이라 별 제약 없을 듯
Out-of-tree 모듈 같은 경우에는 저 스크립트를 쓸 순 없을 거 같고, 나 같은 경우에는 Build ear 사용했음
맞다 한가지 더 물어봐도 됨? compile_commands.json 만들고 lsp 졸리면 clang 에 없는 컴파일 옵션이라고 에러 많이 뜨잖아 이거 해결하는 방법 혹시 앎?