[UE4] "코드 파일 D:\Build\++UE4+Licensee\xxx를 찾을 수 없음"을 해결하는 방법



UE4를 디버그하려고 하고, 디버그 심볼을 유효하게 하거나, 소스 코드를 입수해도, 실제로 C++ Symbols를 표시시키도록 해도 상기 에러로 해결할 수 없는 경우가 있다.

1. 우선 오류로 표시되는 경로를 확인



표시되는 것이 순식간이므로 스크린 샷을 찍는 것이 좋습니다.

4.25.4가 최신인 2020년 11월 현재 표시되는 경로는 D:¥Build¥++UE4+Licensee¥Sync 또는 D:¥Build¥++UE4¥Sync
  • 왜인지 반드시 D 드라이브를 나타내고 있습니다

  • ++ UE4 또는 Sync 또는 문자열이 들어 있습니다

  • 가 특징. 이 패스는, Epic Games가 배포판의 UE4를 빌드했을 때에 가리키고 있던 패스라고 불리고 있어, 배포판의 바이너리의 경우는 변경할 수 없는 것 같다.

    스스로 빌드한 UE4라면 원래 상기 에러는 나오지 않지만, 아래에 나타내는 해결책은, 스스로 UE4를 빌드하지 않고, 가리키고 있는 패스를 재현하는 것으로 해결하는 방법.

    2. D 드라이브를 물리적 or 가상으로 준비



    이미 D 드라이브가 존재하는 사람은 날려 다음.

    없는 사람은 육체적으로 준비하거나, 이하의 방법으로 가상적으로 만든다.
  • 탐색기에서 C 드라이브 바로 아래에 VirtualDDrive 라는 폴더를 만듭니다
  • 관리자 권한 없이 명령 프롬프트를 엽니다
  • subst D: C:¥VirtualDDrive 실행

  • 이렇게 하면 가상적으로 D 드라이브가 생겨 C 드라이브 바로 아래에 만든 VirtualDDrive 라는 경로를 가리키게 된다.

    다만 subst 커멘드의 효과는 재기동하면 사라져 버리므로, 상기 내용의 bat 파일을 만들어 스타트업 폴더에 넣어 두면 해결한다. 자세한 내용은 또 다른 Qiita 기사 등을 참조하십시오.

    3. Sync까지 폴더 만들기



    다음에 앞서 준비한 D 드라이브에 Sync 폴더까지의 폴더를 익스플로러로 작성한다. 경로는 삼가해 둔 에러 메시지대로 한다.

    예를 들어 D:¥Build¥++UE4+Licensee¥Sync가 표시되면 D 드라이브에 Build , 그 안에 ++UE4+Licensee 폴더를 만듭니다.

    다만 Sync 폴더 자체는 다음 작업으로 링크를 만들기 때문에, 만들지 않고 OK.

    4. Sync 폴더와 UE4 소스 코드를 연결



    명령 프롬프트를 열어 정션(또는 심볼릭 링크)을 만듭니다.

    예를 들어, 오류 메시지에 D:¥Build¥++UE4+Licensee¥Sync가 표시되고 UE4 소스 코드가 C:¥UE_4.25에 있으면,
    mklink /J D:¥Build¥++UE4+Licensee¥Sync C:¥UE_4.25
    

    명령 프롬프트에서 실행합니다. (관리자 권한이 필요할 수 있음)

    이제 의사 에러 메시지에 나온 경로가 재현되기 때문에 다시 실행하면 오류가 발생하지 않습니다.

    물론, 정션이나 심볼릭 링크가 아니어도, 물리적으로 그 폴더에 소스 코드를 이동시켜도 OK.

    보충: 무언가와 편리한 심볼릭 링크



    덧붙여서 junction이나 심볼릭 링크를 만드는 방법은 여러가지 편리하고, Visual Studio내에서 UE4의 패스가 잘 참조되지 않을 때의 잠정적인 해결법도 되고, 용량이 큰 폴더를 다른 드라이브에 옮겨 심볼릭 링크 로 원래 장소에 있는 것처럼 행동하게 할 수도 있다.

    다만, 정션이나 심볼릭 링크를 삭제할 때는, 확실히 원래의 폴더의 내용이 사라져 버리지 않도록 세심한 주의가 필요(unlink나 rmdir등을 사용해 지운다).

    좋은 웹페이지 즐겨찾기