빨간색 에러들

[Windows C++] Visual Studio에서 긴 경로 제한 해제하기 with CMake

vhxpffltm 2023. 9. 4. 11:34
반응형

https://vhxpffltm.tistory.com/274

 

위 내용의 후속으로 아래 글을 이용해서 VS 솔루션으로 바이너리 실행시

 

정말 긴 경로를 잘 인식하는지 설정해야한다.

 

먼저, 레지스트리 편집기를 통해 긴 경로를 설정해도 VS의 바이너리에서는 런타임에 적용이 안되는 문제가 있을 수 있다.

 

https://stackoverflow.com/questions/71602123/how-to-enable-long-path-aware-behavior-for-setting-the-current-directory-in-a

 

How to enable "Long Path Aware" behavior for setting the current directory in a C++ windows console app

In a C++ console application on windows, i'm trying to break the MAX_PATH restriction for the SetCurrentDirectoryW function. There are many similar questions already asked but none got a usable ans...

stackoverflow.com

위의 내용을 적용하면 그대로 적용할 수 있다.

 

레지스트리는 변경했다 하고 실제 실행할 바이너리에 위 글대로 매니페스트 파일을 적용하여 실행하면 해당 오류가 사라진다.

 

 

위의 스크립트를 .manifest 파일로 만들어 Visual Studio 프로젝트의 '매니페스트 도구' -> ''입력 및 출력' 에 경로를 저장하면 적용된다.

 

필자의 프로젝트는 CMake 빌드 제너레이터로 구성되어 있기때문에, 작성되어 있는 CMake를 기준으로 한다.

 

1. 먼저 해당 manifest 파일이 다른 프로젝트 경로에 있어서 install을 통해 설치한다.

2. 이제 바이너리가 빌드되는 스크립트에서 manifest 파일을 넣어주면 된다.

 문제는.. 어떻게 넣어주느냐인데 GPT는 실행파일을 만들때 추가하면 된다고 하고 stack overflow는 좀 복잡하게 설명한다. 필자는 add_executable() 함수 안에 매니페스트 파일의 경로를 추가하여 적용하였다.

 

 

이렇게 CMake를 모두 적용하여 VS로 configuration을 마치면 프로젝트에 해당 경로의 매니패스트 파일이 설정되어 있다.

 

 

 

혹은 아래의 링크를 더 확인해서 적용할 수 있다.

https://stackoverflow.com/questions/50005282/configure-manifest-tool-options-using-cmake

 

Configure manifest tool options using cmake

Is it possible to configure DPI Awareness value using cmake or some script?

stackoverflow.com

 

 

반응형