[Nodejs] napi.h, node_api.h includePath 에러 (m1 mac)

아홉번째태양·2023년 7월 30일
0

C++ 컴파일러 경로 설정이 잘 되어 있음에도 Nodejs C++ 애드온을 만들려고 관련 헤더를 임포트해보면 위와 같은 경로 에러가 발생했다.

컴파일러 경로 자체가 문제가 아니다. 해당 헤더들이 설치된 위치가 C++ 컴파일러가 기본적으로 참조하고 있는 헤더들 위치와 다른 것이 문제다.

따라서, node_api.hnapi.h가 설치된 위치를 직접 includePath에 포함시켜줘야 한다.

node_api.h는 node가 설치된 장소에 있는데, m1 mac이고 homebrew를 통해서 설치했다면 /opt/homebrew/include/node에 있고,

napi.hnode-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 에러가 발생하지 않는다.

1개의 댓글

comment-user-thumbnail
2023년 7월 30일

잘 봤습니다. 좋은 글 감사합니다.

답글 달기