C++ 컴파일러 경로 설정이 잘 되어 있음에도 Nodejs C++ 애드온을 만들려고 관련 헤더를 임포트해보면 위와 같은 경로 에러가 발생했다.
컴파일러 경로 자체가 문제가 아니다. 해당 헤더들이 설치된 위치가 C++ 컴파일러가 기본적으로 참조하고 있는 헤더들 위치와 다른 것이 문제다.
따라서, node_api.h
와 napi.h
가 설치된 위치를 직접 includePath
에 포함시켜줘야 한다.
node_api.h
는 node가 설치된 장소에 있는데, m1 mac이고 homebrew를 통해서 설치했다면 /opt/homebrew/include/node
에 있고,
napi.h
는 node-addon-api
를 설치했다면 이 안에 포함되어있지만, node_modules
에 대해서는 어째서인지 vscode에서 recursive하게 탐색을 하지 않기 때문에 ${workspace}/node_modules/**
를 추가해줘야한다.
따라서, 완성된 c_cpp_properties.json
의 모습은 다음과 같을 것이다.
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/node_modules/**",
"/opt/homebrew/include/**"
],
"defines": [],
"macFrameworkPath": [
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
],
"compilerPath": "/usr/bin/clang",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "macos-clang-arm64"
}
],
"version": 4
}
includePath 설정을 수정하고나면 이제 include 에러가 발생하지 않는다.
잘 봤습니다. 좋은 글 감사합니다.